Keras:保存模型不会在deconv2D中保存output_shape

时间:2016-11-03 09:06:11

标签: python tensorflow deep-learning keras

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

所以我有两个问题:

  • 我可以保存真实的固定的ouput_shape吗?
  • 有没有办法在output_shape中使用带有conv2d和ten​​sorflow的动态批号? (使用None在图层定义中给出了相同的错误)

谢谢Stackoverflow'guys

0 个答案:

没有答案