神经网络已编译但训练未开始
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 就开始了很多不同的小型训练,而且只有在所有训练都结束后才会显示所有内容。
我想用 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 就开始了很多不同的小型训练,而且只有在所有训练都结束后才会显示所有内容。