保存Keras模型:UTF-8错误

保存Keras模型:UTF-8错误,utf-8,neural-network,hdf5,convolution,utf,Utf 8,Neural Network,Hdf5,Convolution,Utf,我在keras中建立了一个卷积神经网络,它看起来像这样: model = Sequential() model.add(Convolution2D(nb_filters, nb_conv, nb_conv, border_mode='valid', input_shape=(img_cols, img_rows, 3))) convout1 = Activation(

我在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编码的。 保存已禁用。 有关更多详细信息,请参阅控制台。


如何修复此错误以正确保存权重

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

您考虑过pickle吗?keras不支持将模型保存为pickle文件。这是一条措辞非常糟糕、令人困惑的错误消息,Jupyter的意思是,我不知道如何打开该文件。与储蓄无关。现在是阅读和显示的时候了。