TensorFlow:无法加载训练模型

节拍器

我正在尝试使用 tflearn 训练、保存和加载张量流模型

        # Building convolutional network

        network = input_data(shape=[None, imageSize, imageSize, 1], name='input')
        network = conv_2d(network, imageSize, self.windowSize, activation='relu', regularizer="L2")
        network = max_pool_2d(network, 2)
        network = local_response_normalization(network)
        network = conv_2d(network, imageSize * 2, self.windowSize, activation='relu', regularizer="L2")
        network = max_pool_2d(network, 2)
        network = local_response_normalization(network)
        network = fully_connected(network, (dim4 * dim4) * (imageSize * 2), activation='tanh')
        network = dropout(network, keep)
        network = fully_connected(network, (dim4 * dim4) * (imageSize * 2), activation='tanh')
        network = dropout(network, keep)
        network = fully_connected(network, n_classes, activation='softmax')
        network = regression(network, optimizer='adam', learning_rate=self.learningRate,
                                loss='categorical_crossentropy', name='target')

        model = tflearn.DNN(network, tensorboard_verbose=0, tensorboard_dir='some/dir')
        model.fit(

            {'input': np.array(myData.train_x).reshape(-1, self.imageSize, self.imageSize, 1)}, {'target': myData.train_y}, n_epoch=self.epochs,

            validation_set=(
                {'input': np.array(myData.test_x).reshape(-1, self.imageSize, self.imageSize, 1)},
            {'target': myData.test_y}),
        snapshot_step=100, show_metric=True, run_id='convnet')
        model.save("some/path/model")

这部分有效。接下来,我做

        model_path = "some/path/model.meta"

        if os.path.exists(model_path):
            model.load(model_path)
        else :
            return "need to train the model"

        prediction = self.model.predict([<some_input>])
        print(str(prediction))
        return prediction

这在model.load(model_path). 我收到以下错误跟踪

DataLossError (see above for traceback): Unable to open table file some/path/model.meta: Data loss: not an sstable (bad magic number): perhaps your file is in a different file format and you need to use a different restore operator?
     [[Node: save_5/RestoreV2_4 = RestoreV2[dtypes=[DT_FLOAT], _device="/job:localhost/replica:0/task:0/device:CPU:0"](_arg_save_5/Const_0_0, save_5/RestoreV2_4/tensor_names, save_5/RestoreV2_4/shape_and_slices)]]
Caused by op 'save_5/RestoreV2_4', defined at:

是什么意思

Data loss: not an sstable (bad magic number): perhaps your file is in a different file format and you need to use a different restore operator?

我可以看到模型确实保存正确并且不是空文件。为什么我加载不了

版本信息

tensorflow==1.4.0
tensorflow-tensorboard==0.4.0rc2
tflearn==0.3.2
Python 3.6.3 :: Anaconda, Inc.
维杰·卡尔马斯

回答 :

正如评论中所讨论的,您将变量保存到的路径必须包含“.ckpt”文件名。

同样的恢复应该通过相同的“.ckpt”文件进行

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法在tensorflow.js中加载经过python训练的模型

无法通过在tensorflow.js中加载预训练的模型(loadLayersModel)进行预测

训练好的模型无法保存 tensorflow keras

Tensorflow GPU 无法训练我的 Xception 模型

将预训练的词嵌入加载到 Tensorflow 模型中

加载特定的训练模型

Tensorflow训练模型速度

无法加载在 Gensim-pickle 相关错误中训练的模型

Tensorflow:训练模型的图形无法容纳在单个GPU的内存中

TensorFlow网络无法训练?

加载保存的模型以恢复训练

加载预训练的 fasttext 模型

tensorflow/keras 训练模型 keyerror

使用队列Tensorflow训练模型

继续训练从训练和保存的模型中加载的模型

Gensim:无法训练LDA模型

无法使用预先训练的模型

在Go中加载Tensorflow模型时无法预测

无法从tensorflow / keras中的加载模型中获得渐变

无法使用TensorFlow和TFLEARN保存或加载模型

无法保存和恢复训练有素的TensorFlow模型

Kaggle Titanic-Machine Learning From Disaster with TensorFlow:模型训练无法获得损失值

Tensorflow 损失收敛,但模型即使在训练数据上也无法预测

在预先训练的模型中加载我的训练模型与在未预先训练的模型中加载我的模型之间的区别?

如何加载张量流模型并继续训练

如何加载经过训练的 RandomForestClassificationModel 模型?

TFF加载预训练的Keras模型

训练后量化后的故障加载模型

从预训练的模型加载单层权重