Ошибка сегментации с последовательной моделью Keras - PullRequest
1 голос
/ 16 мая 2019

Программа имеет ошибку сегментации при использовании последовательной модели keras, по крайней мере, после одного эпизода.

Наша программа использует последовательную модель для управления веслом понг, чтобы избежать нисходящих шаров понг. Каждый кадр изображения игры загружается, обрабатывается в массив 80 * 60 и отправляется модели для выполнения действия (сдвиг вправо или влево на один пиксель). В конце игры (один эпизод) к модели подходят массив X_train, массив Y_train и массив наград. Наша ошибка возникает, по крайней мере, после окончания второго эпизода, но иногда возникает после нескольких эпизодов. Ошибка возникает где-то внутри вычисления модели keras.

Использование keras 2.1.6, тензор потока 1.13.1, pygame 1.9.5.

def create_network():
    model = Sequential()

    model.add(Dense(units=200,input_dim=80*60, activation='relu', kernel_initializer='glorot_uniform'))

    model.add(Dense(units=1, activation='sigmoid', kernel_initializer='RandomNormal'))

    model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

    epochs_before_saving = 10
    log_dir = './log' + datetime.now().strftime("%Y%m%d-%H%M%S") + "/"

    tbCallBack = callbacks.TensorBoard(log_dir=settings.log_dir, histogram_freq=0,  
         write_graph=True, write_images=True)

Приведенный выше код инициализирует модель.

    model.fit(x=np.vstack(sX_train), y=np.vstack(Y_train), verbose=1, sample_weight=reward_array)

Приведенная выше строка соответствует массиву x_train, y_train и reward для модели в конце эпизода.

172-26-86-157:ML tomhardy$ python dodge.py
pygame 1.9.5
Hello from the pygame community. https://www.pygame.org/contribute.html
Using TensorFlow backend.
WARNING:tensorflow:From /Users/tomhardy/anaconda3/lib/python3.7/site-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.
Instructions for updating:
Colocations handled automatically by placer.
2019-05-16 18:20:37.788946: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
WARNING:tensorflow:From /Users/tomhardy/anaconda3/lib/python3.7/site-packages/tensorflow/python/ops/math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use tf.cast instead.
Epoch 1/1
15/15 [==============================] - 0s 22ms/step - loss: -0.8084 - acc: 0.6000
Epoch 1/1
15/15 [==============================] - 0s 286us/step - loss: -1.4546 - acc: 0.6000
Segmentation fault: 11
172-26-86-157:ML tomhardy$ 

В этом случае ошибка сегментации произошла после двух эпизодов.

...