волатильность gpu в водоснабжении очень низкий

Я тренирую мульти-лейбл проблема классификации изображений, в основном весь код

class DataGenerator(keras.utils.Sequence):    """Generates data for Keras."""    def __init__(self,csv_path ,batch_size=32, dim=(224, 224), n_channels=3,                 n_classes=8, shuffle=True):        self.img_files = pd.read_csv(csv_path)        self.labels = self.img_files.iloc[:, 7:16].values        self.batch_size = batch_size        self.dim = dim        self.n_channels = n_channels        self.n_classes = n_classes        self.shuffle = shuffle        self.on_epoch_end()    def __len__(self):        """Denotes the number of batches per epoch."""        return int(np.floor(len(self.img_files) / self.batch_size))    def __getitem__(self, index):        indexes = self.indexes[index*self.batch_size:(index+1)*self.batch_size]        # Find list of IDs        img_files_temp = [self.img_files['Left-Fundus'][k] for k in indexes]        X, y = self.__data_generation(img_files_temp)        return X, y    def on_epoch_end(self):        """Updates indexes after each epoch."""        self.indexes = np.arange(len(self.img_files))        if self.shuffle == True:            np.random.shuffle(self.indexes)    def __data_generation(self, img_files_temp):        X = np.empty((self.batch_size,self.dim[0], self.dim[1], self.n_channels))        y = np.empty((self.batch_size, self.n_classes))        for i, img_file in enumerate(img_files_temp):            img  = skimage.io.imread(os.path.join('../Customized-DataLoader/data/train_img', img_file))            img = skimage.transform.resize(img, output_shape=self.dim, mode='constant', preserve_range=True)            X[i,:,:,:] = img            index_of_label= int(self.img_files.index[self.img_files['Left-Fundus'] ==img_file][0])            if len(self.img_files.loc[index_of_label][7:16].values)!= 8:                continue            y[:,] = self.img_files.loc[index_of_label][7:16].values        return X, ymodel = keras.applications.densenet.DenseNet121(include_top=False, input_shape=(224, 224, 3))x = model.outputx = Flatten()(x)x = Dense(512)(x)x = Activation('relu')(x)x = Dropout(0.5)(x)output1 = Dense(1, activation = 'sigmoid')(x)output2 = Dense(1, activation = 'sigmoid')(x)output3 = Dense(1, activation = 'sigmoid')(x)output4 = Dense(1, activation = 'sigmoid')(x)output5 = Dense(1, activation = 'sigmoid')(x)output6 = Dense(1, activation = 'sigmoid')(x)output7 = Dense(1, activation = 'sigmoid')(x)output8 = Dense(1, activation = 'sigmoid')(x)model = Model(model.inputs,[output1,output2,output3,output4,output5, output6, output7, output8])# print(model.summary())model.compile(optimizers.rmsprop(lr = 0.0001, decay = 1e-6),loss = ["binary_crossentropy","binary_crossentropy","binary_crossentropy","binary_crossentropy", "binary_crossentropy","binary_crossentropy","binary_crossentropy","binary_crossentropy"],metrics = ["accuracy"])def generator_wrapper(generator):    for batch_x,batch_y in generator:        yield (batch_x,[batch_y[:,i] for i in range(8)])train_file = pd.read_csv('train.csv')test_file = pd.read_csv('test.csv')train_generator = DataGenerator(csv_path = 'train.csv')valid_generator = DataGenerator(csv_path = 'test.csv')batch_size = 32num_epochs = 1STEP_SIZE_VALID =len(train_file)//batch_sizeSTEP_SIZE_TRAIN=len(test_file)//batch_sizemodel.fit_generator(generator=generator_wrapper(train_generator),                    steps_per_epoch=STEP_SIZE_TRAIN,validation_data=generator_wrapper(valid_generator),                    validation_steps=STEP_SIZE_VALID,                    epochs=5,verbose=1, workers =12,use_multiprocessing=True)

Это тренируется без каких-либо ошибок, но проблема-подготовка идет очень медленно, неустойчивость ГПУ высокой в течение некоторого времени потом уходит на 0% и через какое-то время побеги на 90%, может кто-то пожалуйста, помогите мне исправить это узкое место ?

Любые предложения, чтобы сохранить волатильность на 100% будет очень полезно, пожалуйста, дайте мне знать, если требуется больше информации.Спасибо заранее.