Я использую Windows 10, Keras (выпуск 2.3.1) и Tensorflow (выпуск 2.1.0) с CUDA (выпуск 10.1, V10.1.243) для обучения 20 остаточных сетевых моделей на данных от 20 субъектов.
К сожалению, обучение случайно останавливается в течение первой эпохи для модели k (с k <20). Иногда k = 3, иногда k = 7, а иногда k = 19. Единственный вывод, который я получаю, следующий: </p>
Train on 50634 samples, validate on 5626 samples
Epoch 1/200
Загрузка ЦП постоянно остается на уровне 20% (если я позволю, даже в течение нескольких дней), в то время как нагрузка на графический процессор застревает на 1%. Задача, вызывающая эту рабочую нагрузку, составляет Python, как я могу сказать из диспетчера задач. Я уже пытался добавить следующий код, но безуспешно:
import tensorflow as tf
configproto = tf.compat.v1.ConfigProto()
configproto.gpu_options.allow_growth = True
sess = tf.compat.v1.Session(config=configproto)
tf.compat.v1.keras.backend.set_session(sess)
Любые идеи высоко ценятся.
Обновление 1
Вот фрагмент моего обучения l oop:
for testSubjectID in patientIDsForTesting:
[testX,testY,trainX,trainY] = PrepareData.groupAndReturnDataAndBinaryAnnotationsForCurrentSubject()
[scaledTrainX,scaledTestX] = PrepareData.scaleTrainingAndTestingData(trainX,testX)
x_trainScaledWithoutValidationSet,x_validTrainScaled,y_trainWithoutValidationSet,y_validTrain = train_test_split(scaledTrainX,trainY,test_size=0.1,shuffle= True)
nb_classes = len(np.unique(np.concatenate((trainY,testY),axis =0)))
y_true = np.array(testY, dtype=np.int64)
y_trainWithoutValidationSetNumpyArray = np.array(y_trainWithoutValidationSet)
testYNumpyArray = np.array(testY)
y_validTrainNumpyArray = np.array(y_validTrain)
trainXNumpyArray = np.array(trainX)
enc = sklearn.preprocessing.OneHotEncoder()
enc.fit(np.concatenate((y_trainWithoutValidationSetNumpyArray,testY),axis =0).reshape(-1,1))
y_trainWithoutValidationSet = enc.transform(y_trainWithoutValidationSetNumpyArray.reshape(-1,1)).toarray()
y_test = enc.transform(testYNumpyArray.reshape(-1,1)).toarray()
y_valid = enc.transform(y_validTrainNumpyArray.reshape(-1,1)).toarray()
scaledTestX = scaledTestX.reshape((scaledTestX.shape[0],scaledTestX.shape[1],1))
x_validScaled = x_validTrainScaled.reshape((x_validTrainScaled.shape[0],x_validTrainScaled.shape[1],1))
input_shape = x_trainScaledWithoutValidationSet.shape[1:] #x_trainScaled.shape[1:]
Classifier = getResNetClassifier()
Classifier.fit(x_trainScaledWithoutValidationSet,y_trainWithoutValidationSet,x_validScaled,y_valid,y_true)