Io 值不一致错误:对关闭的文件执行I/O操作

Io 值不一致错误:对关闭的文件执行I/O操作,io,machine-learning,theano,keras,Io,Machine Learning,Theano,Keras,我正在尝试使用Keras训练一个模型,我得到了一个“ValueError:I/O操作关闭的文件”。让我困惑的是,我每次在训练过程中都会在不同的点上得到它,所以我不知道是什么导致了它 这是我的密码: from keras.models import Sequential from keras.layers.core import Dense from keras.optimizers import SGD np.random.seed(1) model = Sequential() model

我正在尝试使用Keras训练一个模型,我得到了一个“ValueError:I/O操作关闭的文件”。让我困惑的是,我每次在训练过程中都会在不同的点上得到它,所以我不知道是什么导致了它

这是我的密码:

from keras.models import Sequential
from keras.layers.core import Dense
from keras.optimizers import SGD

np.random.seed(1)

model = Sequential()
model.add(Dense(input_dim=X_train.shape[1], output_dim=50, init='uniform', activation='tanh'))
model.add(Dense(input_dim=50, output_dim=50, init='uniform', activation='tanh'))
model.add(Dense(input_dim=50, output_dim=y_train_ohe.shape[1], init='uniform', activation='softmax'))

sgd = SGD(lr=0.001, decay=1e-7, momentum=.9)
model.compile(loss='categorical_crossentropy', optimizer=sgd)
model.fit(X_train, y_train_ohe, nb_epoch=50, batch_size=300, verbose=1, validation_split=0.1)
每次都不一样,但我得到如下输出:

Train on 54000 samples, validate on 6000 samples
Epoch 1/50
54000/54000 [==============================] - 1s - loss: 0.2964 - val_loss: 0.2558
Epoch 2/50
54000/54000 [==============================] - 0s - loss: 0.2927 - val_loss: 0.2546
Epoch 3/50
12000/54000 [=====>........................] - ETA: 0s - loss: 0.2829

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-93-cdea496300a5> in <module>()
----> 1 model.fit(X_train, y_train_ohe, nb_epoch=50, batch_size=300, verbose=1, validation_split=0.1)

/home/julius/anaconda2/lib/python2.7/site-packages/keras/models.pyc in fit(self, x, y, batch_size, nb_epoch, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, **kwargs)
    400                               shuffle=shuffle,
    401                               class_weight=class_weight,
--> 402                               sample_weight=sample_weight)
    403 
    404     def evaluate(self, x, y, batch_size=32, verbose=1,
培训54000个样本,验证6000个样本
纪元1/50
54000/54000[================================================]1s-损失:0.2964-价值损失:0.2558
纪元2/50
54000/54000[==========================================]-0s-损失:0.2927-价值损失:0.2546
纪元3/50
12000/54000[==========>…]预计到达时间:0s-损失:0.2829
---------------------------------------------------------------------------
ValueError回溯(最近一次调用上次)
在()
---->1模型拟合(X系列,y系列,nb系列=50,批量=300,详细=1,验证拆分=0.1)
/home/julius/anaconda2/lib/python2.7/site-packages/keras/models.pyc适合(self、x、y、批量大小、nb、epoch、详细、回调、验证拆分、验证数据、随机、类权重、样本权重、**kwargs)
400洗牌=洗牌,
401等级重量=等级重量,
-->402样品重量=样品重量)
403
404 def评估(自我、x、y、批次大小=32、详细=1、,

如您所见,在给我这个错误之前,模型经过了几个时期的训练。X_train和y_train来自MNIST数据集。此外,我发现我关闭了verbose,问题就消失了。这基本上解决了问题,但不允许我使用verbose。有没有办法让它显示更新而不出现此错误?

我修复了这个问题将
%%capture
添加为包含
model.fit()的单元格的第一行时出现问题