keras 为什么我得到一个'str'对象不可调用的错误?

ux6nzvsh  于 5个月前  发布在  其他
关注(0)|答案(3)|浏览(86)

我代码:

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

yxyvkwin

yxyvkwin1#

我在TensorFlow中加载保存的pb模型时遇到了同样的错误。原来我没有使用Keras保存模型,所以不得不使用tf.saved_model.load('model_directory')而不是Keras加载模型。

dy2hfwbg

dy2hfwbg2#

可能这些都是产生这种错误的因素。
1.您已将模型保存为其他名称。
1.您将模型保存在不同的目录中,名称正确或不正确
1.你的分机号错了
在你的情况下,你的模型的扩展是错误的,因为没有像模型的扩展”检查你的模型的扩展.它可能“h5”https://www.tensorflow.org/tutorials/keras/save_and_load#hdf5_format

mwngjboj

mwngjboj3#

我也有同样的错误。实际上,我试图用.keras和.h5扩展名保存。当我尝试使用tf.keras.models.load_model()或tf.saved_model.load()时,它会给予这个错误。看到Anjul Tyagi的答案,我就把模型保存为文件夹(没有在保存路径中写入扩展名),然后再次加载它,就像一个文件夹一样。而且它工作了。所以,我写的不是(“model.keras”)或(“model.h5”),而是(“model”)。
顺便说一句,我从来没有得到这个错误,而保存,然后加载模型,我自己写的。这一次我使用hub.KerasLayer(),我认为这是导致错误的原因。所以,底线:保存和加载模型作为一个文件夹。希望这有助于有人。

相关问题