Python 3.x 如何保存经过TF2训练的模型并再次使用它进行推断?

Python 3.x 如何保存经过TF2训练的模型并再次使用它进行推断?,python-3.x,tensorflow2.0,Python 3.x,Tensorflow2.0,我使用下面的教程程序(python3)训练一个模型,将图像分类为猫或狗 我可以在我的ubuntu电脑上运行它,但我想保存经过训练的模型,然后用我自己的图像再次尝试 你能给我指一段代码片段吗 1.保存经过训练的模型和 2.推断图像 Re@PSKP 我能够保存并加载模型。代码如下 import tensorflow as tf dog = tf.keras.preprocessing.image.load_img( "mowgli.JPG", grayscale=False, color_

我使用下面的教程程序(python3)训练一个模型,将图像分类为猫或狗

我可以在我的ubuntu电脑上运行它,但我想保存经过训练的模型,然后用我自己的图像再次尝试

你能给我指一段代码片段吗 1.保存经过训练的模型和 2.推断图像

Re@PSKP

我能够保存并加载模型。代码如下

import tensorflow as tf

dog = tf.keras.preprocessing.image.load_img(
   "mowgli.JPG", grayscale=False, color_mode='rgb', target_size=None,
    interpolation='nearest'
   )

 print(dog.size)

 model = tf.keras.models.load_model('dog-cat.h5')
 y_hat = model.predict(dog)

 print(y_hat)
但是在模型上得到了这个错误。预测

ValueError: Failed to find data adapter that can handle input: <class 'PIL.JpegImagePlugin.JpegImageFile'>, <class 'NoneType'>
ValueError:找不到可以处理输入的数据适配器:,

谢谢

我们有很多方法可以做到这一点。但我给你们看的是最简单的方法

解决方案
将tensorflow导入为tf
#列车模型
模型拟合(…)
#保存模型
model.save(“model_name.h5”)
#删除模型
del模型
#负荷模型
model=tf.keras.models.load\u model('model\u name.h5'))
#现在您可以使用模型进行推理
y_hat=模型预测(测试X)
编辑
ValueError的解决方案
问题是您的
dog
变量不是numpy数组或tensorflow张量。在使用它之前,您应该将其转换为numpy数组。而且,
model.predict(…)
不接受单一图像,因此您应该添加一个额外维度

将tensorflow导入为tf
dog=tf.keras.preprocessing.image.load\u img(
“mowgli.JPG”,灰度=假,颜色模式=rgb,目标大小=无,
插值法
)
#转换为numpy数组
狗=np.asarray(狗)
模型=tf.keras.models.load_模型('dog-cat.h5'))
#添加extrac维度(取决于您的模型)
#这是因为狗只有一个形象。但是预测需要很多时间
dog=np.array([dog])
y_hat=模型预测(狗)
印花(y_帽)
寻找其他解决方案

我们有很多方法可以做到这一点。但我给你们看的是最简单的方法

解决方案
将tensorflow导入为tf
#列车模型
模型拟合(…)
#保存模型
model.save(“model_name.h5”)
#删除模型
del模型
#负荷模型
model=tf.keras.models.load\u model('model\u name.h5'))
#现在您可以使用模型进行推理
y_hat=模型预测(测试X)
编辑
ValueError的解决方案
问题是您的
dog
变量不是numpy数组或tensorflow张量。在使用它之前,您应该将其转换为numpy数组。而且,
model.predict(…)
不接受单一图像,因此您应该添加一个额外维度

将tensorflow导入为tf
dog=tf.keras.preprocessing.image.load\u img(
“mowgli.JPG”,灰度=假,颜色模式=rgb,目标大小=无,
插值法
)
#转换为numpy数组
狗=np.asarray(狗)
模型=tf.keras.models.load_模型('dog-cat.h5'))
#添加extrac维度(取决于您的模型)
#这是因为狗只有一个形象。但是预测需要很多时间
dog=np.array([dog])
y_hat=模型预测(狗)
印花(y_帽)
寻找其他解决方案

作为初学者,我发现很难找到图像分类的端到端教程。搜索也很难。TF1、TF2、Python2、python3、Keras……作为初学者,我发现很难找到图像分类的端到端教程。搜索也很难。TF1,TF2,Python2,python3,Keras,…我能够使用tf.Keras.preprocessing.image.load\u img读取图像,但model.predict给了我错误。。。ValueError:找不到可以处理输入的数据适配器:,。我添加了新答案。如果对你的问题有效,请接受这个答案。我可以使用tf.keras.preprocessing.image.load\u img读取图像,但是model.predict给了我错误。。。ValueError:找不到可以处理输入的数据适配器:,。我添加了新答案。如果对你的问题有效,请接受这个答案。