当前位置: 首页 > 知识库问答 >
问题:

Python-Tensorflow保存的模型精度低于保存前

赵禄
2023-03-14

我已经在tensorflow中建立了卷积神经网络,在数据集上对其进行训练,并在看不见的数据上对其进行评估。这样做,我得到了约98%的准确率对看不见的数据<然后我用

model.save("path/to/model")
tf.keras.models.load_model("path/to/model")

并根据相同的数据进行评估,我得到了98%的准确性,但这次我得到了~96%。差别不大,但我觉得也不小。那正常吗?
我已经看到很多次在tenstorflow中,只有权重被导出,而不是偏差,但我不知道它与此有关
这是我的模型结构:

Model: "sequential"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv2d (Conv2D)              (None, 26, 26, 64)        640       
_________________________________________________________________
activation (Activation)      (None, 26, 26, 64)        0         
_________________________________________________________________
max_pooling2d (MaxPooling2D) (None, 13, 13, 64)        0         
_________________________________________________________________
conv2d_1 (Conv2D)            (None, 11, 11, 64)        36928     
_________________________________________________________________
activation_1 (Activation)    (None, 11, 11, 64)        0         
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 5, 5, 64)          0         
_________________________________________________________________
conv2d_2 (Conv2D)            (None, 3, 3, 64)          36928     
_________________________________________________________________
activation_2 (Activation)    (None, 3, 3, 64)          0         
_________________________________________________________________
max_pooling2d_2 (MaxPooling2 (None, 1, 1, 64)          0         
_________________________________________________________________
flatten (Flatten)            (None, 64)                0         
_________________________________________________________________
dense (Dense)                (None, 10)                650       
_________________________________________________________________
activation_3 (Activation)    (None, 10)                0         
=================================================================
Total params: 75,146
Trainable params: 75,146
Non-trainable params: 0
_________________________________________________________________
None

共有1个答案

严嘉良
2023-03-14

这取决于是否有任何随机元素,例如,是否从一开始就对训练数据进行洗牌或随机初始化权重(这是默认设置)。在这种情况下,该算法将找到不同的局部最小值,从而产生不同的结果。

如果你想总是得到完全相同的结果,以相同的顺序输入训练数据,并使用tf.set_random_seed(0),这将使你的初始权重总是相同的。

 类似资料:
  • 问题内容: 在中训练模型后: 你如何保存经过训练的模型? 以后如何恢复此保存的模型? 问题答案: 从文档: 保存 这仍然是测试版,因此我建议不要使用。如果你仍然想走那条路,这里是tf.saved_model使用指南 Tensorflow <2 simple_save 为了完整起见,我给出了很多好答案,我将加2美分:。也是使用 的独立代码示例。 恢复: 独立示例 为了演示,以下代码生成随机数据。 我

  • 在TensorFlow中训练模型后: 如何保存已训练的模型? 以后如何还原此保存的模型?

  • 本文向大家介绍TensorFlow模型保存和提取的方法,包括了TensorFlow模型保存和提取的方法的使用技巧和注意事项,需要的朋友参考一下 一、TensorFlow模型保存和提取方法 1. TensorFlow通过tf.train.Saver类实现神经网络模型的保存和提取。tf.train.Saver对象saver的save方法将TensorFlow模型保存到指定路径中,saver.save(

  • 本文向大家介绍TensorFlow入门使用 tf.train.Saver()保存模型,包括了TensorFlow入门使用 tf.train.Saver()保存模型的使用技巧和注意事项,需要的朋友参考一下 关于模型保存的一点心得 在定义 saver 的时候一般会定义最多保存模型的数量,一般来说,如果模型本身很大,我们需要考虑到硬盘大小。如果你需要在当前训练好的模型的基础上进行 fine-tune,那

  • 我想创建一个预测年龄和性别的模型,并将其集成到Android应用程序中。 我在Ubuntu 16上使用Python 3.6,Tensorflow 1.13.1和Keras 2.2.4。 首先,我用IMDB数据集训练不同的模型:keras的Mobilenet V1和V2,以及我自己编写的VGG。对于这两个MobileNet,我使用imagenet权重来初始化模型。 准确率相当高,性别的准确率超过90

  • 问题内容: Laravel中是否有回调,例如: 我搜索了但什么也没找到。如果没有这样的东西-实施它的最佳方法是什么? 谢谢! 问题答案: 实际上,Laravel在保存|更新|创建某些模型之前具有真实的回调。检查一下: https://github.com/laravel/laravel/blob/3.0/laravel/database/eloquent/model.php#L362 像保存和保存