Python val_损失没有从inf+;损失:训练时发生错误
当我开始训练我的模型时,出现了一个问题。 该错误表示val_损失没有从inf和loss:nan得到改善。 一开始我以为这是因为学习率,但现在我不确定这是什么,因为我尝试了几种不同的学习率,但没有一种对我有效。 我希望有人能帮助我 我的偏好 优化器=亚当, 学习率=0.01 (我已经尝试了一系列不同的学习率,例如:0.0005、0.001、0.00146、0.005、0.5、0.6、0.7、0.8,但这些都不适用于我) 提前停止=已启用 (训练正在停止,因为在第3纪元出现了提前停止,因为没有任何改进。我还禁用了每次模型在第3纪元停止训练时的提前停止,并让它在未启用提前停止的情况下创建100个纪元。) ReduceLR=禁用 关于我尝试训练我的模特的内容 我尝试在我的gpu上训练这个模型(EVGA RTX 3080 FTW3 ULTRA) 很少有评论 在这种情况下,最好采用试错法。看起来你的参数在训练时出现了偏差。很多可能性可能是问题所在。此外,你似乎也在规范你的人际网络(辍学、BatchNorm等) 建议:Python val_损失没有从inf+;损失:训练时发生错误,python,tensorflow,keras,python-3.8,Python,Tensorflow,Keras,Python 3.8,当我开始训练我的模型时,出现了一个问题。 该错误表示val_损失没有从inf和loss:nan得到改善。 一开始我以为这是因为学习率,但现在我不确定这是什么,因为我尝试了几种不同的学习率,但没有一种对我有效。 我希望有人能帮助我 我的偏好 优化器=亚当, 学习率=0.01 (我已经尝试了一系列不同的学习率,例如:0.0005、0.001、0.00146、0.005、0.5、0.6、0.7、0.8,但这些都不适用于我) 提前停止=已启用 (训练正在停止,因为在第3纪元出现了提前停止,因为没有任何改
- 将输入数据正常化,然后再输入网络
- 注释退出/删除您根据自己的喜好使用的所有退出(正则化)/内核初始化器(使用默认初始化)/提前停止等,并让网络成为一个普通的CNN网络,只有conv层、pooling层、batchnorm层和稠密层。如果您看到改进,然后开始逐个取消注释,您将了解问题的原因
- 尝试在稠密层中使用较大的单位,例如1000,因为稠密层提取CNN层压缩的所有内容(图像特征)
AMD图形卡
不,我使用的是nvidia rtx 3080好的,我会试试的谢谢你很多你好,我试过了所有方法,但都不管用。你有没有其他方法可以尝试解决我的问题?这太糟糕了。如果你提供了任何colab链接,我会很乐意亲自检查代码。我不与colab合作,我是sorry@MarlonTeixeira是的,我解决了,这是因为Cuda的安装方式不正确。我通过观看教程并以正确的方式重新安装Cuda修复了它。希望我能帮忙
model = Sequential()
model.add(Conv2D(32,(3,3),padding='same',kernel_initializer='he_normal',input_shape=(img_rows, img_cols,1)))
model.add(Activation('elu'))
model.add(BatchNormalization())
model.add(Conv2D(32,(3,3),padding='same',kernel_initializer='he_normal',input_shape=(img_rows,img_cols,1)))
model.add(Activation('elu'))
model.add(BatchNormalization())
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.2))
model.add(Conv2D(64,(3,3),padding='same',kernel_initializer='he_normal'))
model.add(Activation('elu'))
model.add(BatchNormalization())
model.add(Conv2D(64,(3,3),padding='same',kernel_initializer='he_normal'))
model.add(Activation('elu'))
model.add(BatchNormalization())
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.2))
model.add(Conv2D(128,(3,3),padding='same',kernel_initializer='he_normal'))
model.add(Activation('elu'))
model.add(BatchNormalization())
model.add(Conv2D(128,(3,3),padding='same',kernel_initializer='he_normal'))
model.add(Activation('elu'))
model.add(BatchNormalization())
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.2))
model.add(Conv2D(256,(3,3),padding='same',kernel_initializer='he_normal'))
model.add(Activation('elu'))
model.add(BatchNormalization())
model.add(Conv2D(256,(3,3),padding='same',kernel_initializer='he_normal'))
model.add(Activation('elu'))
model.add(BatchNormalization())
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.2))
model.add(Flatten())
model.add(Dense(64,kernel_initializer='he_normal'))
model.add(BatchNormalization())
model.add(Dropout(0.5))
model.add(Dense(64,kernel_initializer='he_normal'))
model.add(Activation('elu'))
model.add(BatchNormalization())
model.add(Dropout(0.5))
model.add(Dense(num_classes,kernel_initializer='he_normal'))
model.add(Activation('softmax'))
print(model.summary())
from keras.optimizers import RMSprop,SGD,Adam
from keras.callbacks import ModelCheckpoint,EarlyStopping,ReduceLROnPlateau
checkpoint = ModelCheckpoint('Wave.h5',
monitor='val_loss',
mode='min',
save_best_only=True,
verbose=1)
earlystop = EarlyStopping(monitor='val_loss',
min_delta=0,
patience=3,
verbose=1,
restore_best_weights=True)
'''reduce_lr = ReduceLROnPlateau(monitor='val_loss',
factor=0.2,
patience=3,
verbose=1,
min_delta=0.0001)'''
callbacks = [earlystop,checkpoint] #reduce_lr
model.compile(loss='categorical_crossentropy',
optimizer= Adam(lr=0.01),
metrics=['accuracy'])