【问题标题】:The neural networks is compiled but the training does not start神经网络已编译但训练未开始
【发布时间】:2016-06-22 22:17:49
【问题描述】:

我想使用 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

任何想法为什么我重定向输出时它不启动?

【问题讨论】:

    标签: python command-line centos theano keras


    【解决方案1】:

    最后进程开始了,但是没有任何东西显示到终端或写入输出文件,直到训练完全结束(执行的所有 epoch)。

    我通过只用几个 epoch 开始许多不同的小型训练发现,所有的训练都结束后才显示所有内容。

    【讨论】:

      猜你喜欢
      • 2011-04-07
      • 1970-01-01
      • 2016-07-01
      • 2018-06-11
      • 2020-08-16
      • 2019-10-20
      • 1970-01-01
      • 2010-11-20
      • 2019-09-15
      相关资源
      最近更新 更多