我代码:
import cv2 import tensorflow as tf
CATEGORIES=['Dog','Cat']
def prepare(filepath):
IMG_SIZE=50
img_array = cv2.imread(filepath,cv2.IMGREAD_GRAYSCALE)
new_array = cv2.resize(img_array,(IMG_SIZE,IMG_SIZE))
return new_array.reshape(-1, IMG_SIZE, IMG_SIZE, 1)
model = tf.keras.models.load_model("64x3-CNN.model")
prediction = model.predict([prepare('dog.jpg')]) print(prediction)
字符串
我的错误:
TypeError Traceback (most recent call last)
<ipython-input-8-182101876678> in <module>
10 return new_array.reshape(-1, IMG_SIZE, IMG_SIZE, 1)
11
---> 12 model = tf.keras.models.load_model("64x3-CNN.model")
13
14 prediction = model.predict([prepare('dog.jpg')])
TypeError: 'str' object is not callable
型
3条答案
按热度按时间yxyvkwin1#
我在TensorFlow中加载保存的
pb
模型时遇到了同样的错误。原来我没有使用Keras保存模型,所以不得不使用tf.saved_model.load('model_directory')
而不是Keras加载模型。dy2hfwbg2#
可能这些都是产生这种错误的因素。
1.您已将模型保存为其他名称。
1.您将模型保存在不同的目录中,名称正确或不正确
1.你的分机号错了
在你的情况下,你的模型的扩展是错误的,因为没有像模型的扩展”检查你的模型的扩展.它可能“h5”https://www.tensorflow.org/tutorials/keras/save_and_load#hdf5_format
mwngjboj3#
我也有同样的错误。实际上,我试图用.keras和.h5扩展名保存。当我尝试使用tf.keras.models.load_model()或tf.saved_model.load()时,它会给予这个错误。看到Anjul Tyagi的答案,我就把模型保存为文件夹(没有在保存路径中写入扩展名),然后再次加载它,就像一个文件夹一样。而且它工作了。所以,我写的不是(“model.keras”)或(“model.h5”),而是(“model”)。
顺便说一句,我从来没有得到这个错误,而保存,然后加载模型,我自己写的。这一次我使用hub.KerasLayer(),我认为这是导致错误的原因。所以,底线:保存和加载模型作为一个文件夹。希望这有助于有人。