我使用keras最后版本和tensorflow 0.10。
我遇到了磁盘上模型序列化的问题。
我定义了一个类似的模型:
model.add(Deconvolution2D(64,3,3, output_shape=(32, 8, 8, 64),border_mode='same', activation='relu'))
model.add(Deconvolution2D(64,3,3, output_shape=(32, 8, 8, 64), border_mode='same', activation='relu'))
model.add(UpSampling2D(size=(2,2)))
(我无法在output_shape中使用可变的批量大小(无,8,8,64)但这是另一个问题)
一切都很好,我可以训练,预测等等。
但是当我尝试使用model.save(...)
保存在磁盘上并加载keras.models.load_model(...)
时,我得到以下内容:
TypeError: Expected binary or unicode string, got None
所以我检查了保存的配置文件,我为前面描述的层获得了这个:
{
"config": {
"activity_regularizer": null,
"W_regularizer": null,
"b_constraint": null,
"init": "glorot_uniform",
"nb_filter": 64,
"nb_row": 3,
"border_mode": "same",
"name": "deconvolution2d_1",
"nb_col": 3,
"W_constraint": null,
"b_regularizer": null,
"trainable": true,
"output_shape": [
null,
8,
8,
64
],
"bias": true,
"activation": "relu",
"subsample": [
1,
1
],
"dim_ordering": "tf"
}
}
请注意"output_shape": [null,...
另外,model.summary()
给了我:deconvolution2d_2 (Deconvolution2(None, 8, 8, 64)
所以我有两个问题:
谢谢Stackoverflow'guys