神经网络已编译但训练未开始

The neural networks is compiled but the training does not start

我想用 keras 训练一个神经网络,但是训练没有开始,而且它发生在非常奇怪的情况下。

这是我的部分代码:

model = Sequential()
model.add(Convolution2D(8, 7, 7, border_mode='valid', input_shape=(1, 31, 31), activation='tanh'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Convolution2D(16, 5, 5, border_mode='valid', activation='tanh'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Convolution2D(32, 3, 3, border_mode='valid', activation='relu'))
model.add(Flatten())
model.add(Dense(23))
model.add(Activation('tanh'))
model.add(Dropout(0.1))
model.add(Dense(11))
model.add(Activation('sigmoid'))
model.add(Dropout(0.1))
model.add(Dense(1))
model.add(Activation('sigmoid'))

optimizer = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
print("optimizer done")
model.compile(loss='binary_crossentropy', optimizer=optimizer)
print("compile done")
sys.stdout.flush()

model.fit(dataset, labels, batch_size=batch_size, nb_epoch=nb_epoch, shuffle=True, validation_split=0.1, verbose=2)

如果我 运行 在终端中使用此代码 python mynn.py,一切顺利,训练开始。

但是如果我 运行 在终端中使用 python mynn.py &python mynn.py > results.txt 这段代码,或者如果我在我的代码 sys.stdout = open('Outputs.txt', 'w') 中重定向输出,那么程序就会停止对于 fit 方法,因此学习不会开始。显示了compile done,但仅此而已,没有训练。

我看了一下,好像程序一直在调用这个函数clock_gettime(CLOCK_MONOTONIC_RAW, {,}) = 0

知道为什么当我重定向输出时它没有启动吗?

该过程最终开始,但在训练完全结束(执行了所有 epoch)之前,没有任何内容显示到终端或写入输出文件。

我发现只用几个 epoch 就开始了很多不同的小型训练,而且只有在所有训练都结束后才会显示所有内容。