我已经在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
这取决于是否有任何随机元素,例如,是否从一开始就对训练数据进行洗牌或随机初始化权重(这是默认设置)。在这种情况下,该算法将找到不同的局部最小值,从而产生不同的结果。
如果你想总是得到完全相同的结果,以相同的顺序输入训练数据,并使用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 像保存和保存