【问题标题】:Saving Keras Model: UTF - 8 Error保存 Keras 模型:UTF - 8 错误
【发布时间】:2018-01-13 04:55:02
【问题描述】:

我在 keras 中构建了一个卷积神经网络,如下所示:

model = Sequential()

    model.add(Convolution2D(nb_filters, nb_conv, nb_conv,
                            border_mode='valid',
                            input_shape=(img_cols, img_rows, 3)))
    convout1 = Activation('relu')
    model.add(convout1)
    model.add(Convolution2D(nb_filters, nb_conv, nb_conv))
    convout2 = Activation('relu')
    model.add(MaxPooling2D(pool_size=(nb_pool, nb_pool)))
    model.add(convout2)
    model.add(MaxPooling2D(pool_size=(nb_pool, nb_pool)))
    model.add(Dropout(0.5))
    model.add(Flatten())
    model.add(Dense(128))
    model.add(Activation('relu'))
    model.add(Dropout(0.5))
    model.add(Dense(nb_classes))
    model.add(Activation('softmax'))
    model.compile(loss='categorical_crossentropy', optimizer='adadelta', metrics=['accuracy'])

我正在尝试使用以下方法在训练后保存模型的权重:

fname = "weights-Test-CNN.hdf5"
model.load_weights(fname)

程序运行,并创建一个文件,但一旦我打开文件,显示的内容如下:

错误! C://Users/NAME/weights-Test-CNN.hdf5 不是 UTF-8 编码的。 保存已禁用。 有关详细信息,请参阅控制台。

如何解决此错误以便正确保存权重?

【问题讨论】:

  • 你考虑过酸洗吗?
  • keras 不支持将模型保存为 pickle 文件。

标签: utf-8 neural-network hdf5 convolution utf


【解决方案1】:

权重正在事实上被保存了。这里的问题是您不能将它们作为 UTF-8 编码文件读取。但是,如果您尝试加载权重,它应该可以工作。

【讨论】:

  • 这是一个措辞非常糟糕且令人困惑的错误消息,Jupyter 的意思是,我不知道如何打开文件。与储蓄无关。它与阅读和展示有关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-12
  • 1970-01-01
  • 2021-07-02
相关资源
最近更新 更多