python - Tensorflow Keras:在 model.fit() 上训练 Holting
问题描述
我是 tensorflow 和 python 的新手,所以我确信它只是一些愚蠢的东西。但是当我尝试使用 model.fit() 训练我的模型时,经过随机次数的训练迭代后,它会冻结。GPU 使用率归零,并且没有显示错误消息来指示错误所在。我正在尝试训练的模型如下:
SizeOfInput = 50
VocabSize = 8000
EmbeddingSize = 200
model = Sequential()
model.add(Embedding(input_dim=VocabSize, output_dim=EmbeddingSize, input_length=SizeOfInput))
model.add(LSTM(256, input_shape=(SizeOfInput, EmbeddingSize), return_sequences=True))
model.add(Dropout(0.1))
model.add(LSTM(256))
model.add(Dropout(0.1))
model.add(Dense(VocabSize, activation='softmax'))
optimizer = tf.keras.optimizers.RMSprop(lr=1e-3, decay=1e-5)
model.compile(loss='categorical_crossentropy', optimizer=optimizer)
张量流:2.2.0
蟒蛇:3.8
显卡:RTX2080Ti
我正在从一个更大的数据集中训练 10000 个随机采样的每个时期 50 个整数的序列:
model.fit(x, y, batch_size=100, epochs=1)
我真的不知道问题是什么,如果您需要更多信息,请告诉我
解决方案
1.首先请在Google Colab中尝试您的代码
2.尝试使用另一个优化器:
keras.layers.BatchNormalization._USE_V2_BEHAVIOR = False
3.也许有些操作在 cpu 中运行,有些操作在 GPU 中运行。为了防止它:
with tf.device("/device:GPU:0"):
model.fit(x, y, batch_size=100, epochs=1)
3.更新最新版本
tf-nightly-gpu
tf-gpu 2.1 cudn 10.2
4.测试这个:
print(tf.version.VERSION, tf.executing_eagerly(), keras.layers.BatchNormalization._USE_V2_BEHAVIOR)
keras.layers.BatchNormalization._USE_V2_BEHAVIOR = False
推荐阅读
- typescript - TypeScript - 将子类转换为超类
- java - 如何在 NetBeans 上增加文本字体(类路径文本、属性文本)
- html - 车把相等嵌套
- .net - dotnet build 如何在内部生成 app.runtimeconfig.json?
- python - 搜索特定单词并移动 pdf
- python - 多列的itertools组合
- java - 使用 Javers 为审核组添加评论
- javascript - 根据地址栏 URL 更改按钮 HREF
- c# - DotNetFiddle 和 Console.ReadLine 出现问题,在按下 ENTER 键时会导致重新运行
- python - Discord.py 机器人,当用户添加反应时分配角色