Tensorflow Keras: Тренировка Холтинга на model.fit () - PullRequest
1 голос
/ 29 мая 2020

Я новичок в tenorflow и python, поэтому уверен, что это что-то глупое. Но когда я пытаюсь обучить свою модель с помощью model.fit (), после случайного количества итераций обучения она зависает. Использование графического процессора уменьшается до нуля, и не отображается сообщение об ошибке, указывающее, где именно возникла ошибка. Модель, которую я пытаюсь обучить, выглядит следующим образом:

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)

Tensorflow: 2.2.0

Python: 3,8

GPU: RTX2080Ti

Я тренируюсь на 10000 случайно выбранных последовательностях из 50 целых чисел в каждую эпоху из более крупного набора данных:

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

Я действительно не знаю, в чем проблема, дайте мне знать, если вам нужна дополнительная информация

1 Ответ

0 голосов
/ 29 мая 2020

1. Сначала попробуйте свой код в Google Colab

2. Попробуйте использовать другой оптимизатор:

keras.layers.BatchNormalization._USE_V2_BEHAVIOR = False

3. Может быть, некоторые операции выполняются в ЦП и некоторые операции выполняются в графическом процессоре. Во избежание этого:

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
...