【问题标题】:Tensorflow Keras: Training Holting on model.fit()Tensorflow Keras:在 model.fit() 上训练 Holting
【发布时间】:2020-09-16 19:28:45
【问题描述】:

我是 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

Python:3.8

GPU:RTX2080Ti

我正在对 10000 个随机采样的序列进行训练,每个 epoch 包含 50 个整数,来自一个更大的数据集:

model.fit(x, y, batch_size=100, epochs=1)

我真的不知道问题是什么,如果您需要更多信息,请告诉我

【问题讨论】:

    标签: python tensorflow keras tensorflow2.0 freeze


    【解决方案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
    

    【讨论】:

    • 问题中定义的模型没有使用Batch Normalization,那么2.和4.的动机是什么?
    • 我假设你的代码中是否有 BatchNormalization。
    • 你不应该做出这样的假设
    • 没有你所有的代码,我想为你的解决方案加速。
    • 我不是提出原始问题的人。
    猜你喜欢
    • 1970-01-01
    • 2018-01-31
    • 2017-11-28
    • 2023-02-22
    • 2019-01-20
    • 1970-01-01
    • 2020-07-13
    • 2021-08-26
    • 2020-09-01
    相关资源
    最近更新 更多