数据集是Multi Label about 6 labels, [ 0,1,0,0,0,0] or [1,0,1,0,0,0] or [0,0,0,0,0, 0] 是可能的真实标签。它不仅仅是一个热编码,可能会发现多个或没有正类。 因此,我在最后一层有带有 Sigmoid 激活的 Dense_6。我尝试使用 , tf.keras.optimizers.Adam(learning_rate=0.00001,clipvalue=0.9) ) #'adam') 即使这样我也经常使用 Nan。我使用了 SGD tf.keras.optimizers.SGD(lr=0.000003, momentum=0.9, clipnorm=0.99999) ,Nan/inf 不是那么频繁,但仍然可以找到。
#model3T.compile(loss="binary_crossentropy",optimizer=tf.keras.optimizers.Adam(learning_rate=0.00001,clipvalue=0.9) ) #'adam')# optimizer=keras.optimizers.Adam())
opt = tf.keras.optimizers.SGD(lr=0.000003, momentum=0.9, clipnorm=0.99999)
model3T.compile(loss="binary_crossentropy",optimizer=opt ) #'adam')# optimizer=keras.optimizers.Adam())
#model3T.load_weights("histSGD_ClipNormLr00001_7Epo_TTT_2_2_2_Weights")
transferHistSGD_ClipNormLr00001_25Epo_MMM_05_05_05=model3T.fit(#_generator(
DataGenerator(X_train, y_train, batch_size=64,img_size=(128,128,3), img_dir='trainImageFoler/'),
epochs=20,
verbose=1,
use_multiprocessing=True,
workers=4,#
validation_data=DataGenerator(X_test, y_test, batch_size=64*2,img_size=(128,128,3), img_dir='trainImageFoler/')
#callbacks=[pred_history, scheduler]
)
以下是部分日志:
纪元 1/20 629/629 [==============================] - 191 秒 296 毫秒/步
- loss: 0.2997 - val_loss: nan Epoch 2/20 629/629 [==============================] - 137 秒 215 毫秒/步 - 损失:0.2834 - val_loss: 0.3854 Epoch 3/20 629/629 [==============================] - 174 秒 274 毫秒/步 - 损失:0.2662 - val_loss:inf 纪元 4/20 629/629 [==============================] - ETA:0s - 损失:0.2502
纪元 27/30 629/629 [==============================] - 144 秒 227 毫秒/步
- loss: 0.1046 - val_loss: 0.4847 Epoch 28/30 629/629 [==============================] - 170s 268ms /步 - 损失:0.0991 - val_loss: 0.5383 Epoch 29/30 629/629 [==============================]
- 175 秒 276 毫秒/步 - 损失:0.0959 - val_loss:nan 纪元 30/30 629/629 [=========================== ===] - 151 秒 238 毫秒/步 - 损失:0.0929 - val_loss:0.5100