python - 模型突然“忘记”它所学的一切,并在大约 110 个 epoch 时停止工作。NaN 损失和 50% 的准确率
问题描述
我已经在我的数据集上测试了 20 多种不同的 LSTM 网络架构,到目前为止还没有任何问题。但是我尝试过的这个模型大约在第 110 个 epoch 左右,它突然擦除了它所学到的所有东西并获得了 NaN 损失(见附件截图)。每次使用此模型时都会发生这种情况。
该模型如下所示:
model = keras.Sequential([
keras.kayers.Embedding(numberOfWords, embedding_vector_length, input_length=1000),
keras.layers.Dropout(0.5),
keras.layers.LSTM(256, dropout = 0.6),
keras.layers.Dropout(0.6),
keras.layers.Dense(128),
keras.layers.Dropout(0.5),
keras.layers.Dense(1, activation='sigmoid')
])
model.compile(optimizers.RMSprop(learning_rate=0.001, rho=0.9), loss='binary_crossentropy',
metrics=['accuracy'])
history = model.fit(x_train, y_train, epochs=700, callbacks=callbacks_list, batch_size=32,
validation_data=(x_test, y_test))
我想我在这里做错了什么,但我没有足够的经验来发现它。有人可以帮我吗?
解决方案
在第 6 行指定使用“relu”有效。不太清楚为什么,因为我认为默认值会起作用,但是很好:
keras.layers.Dense(128, activation='relu')
推荐阅读
- android - Android 9 上的 android.database.sqlite.SQLiteCantOpenDatabaseException
- c# - 在 API 服务级别配置 Serilog Log.Logger
- java - 如何在 for 循环中创建对象,同时在 Java 中的每次迭代中更改对象名称?
- node.js - 如何在后端创建搜索菜单逻辑
- string - Bash:连接包含字符串的变量 n 列 n 列
- regex - 如何细化正则表达式的结果
- c# - UIAComWrapper 无法返回以前 COLLAPSED 的 WPF 控件的子节点
- powerbi - Power BI (DAX) 中具有当前行值和先前日期的计算列
- c# - .Net Core 上的 FirebaseAdmin SDK 返回“没有这样的设备或地址”
- powershell - CimClass 的成员通过管道不同