我在本地计算机上训练了CNN模型,使用保存了模型,model.save('./models/my_model')
并且能够(new_model = tensorflow.keras.models.load_model('./models/my_model'))
使用Web框架Flask加载模型并对通过浏览器传递的图像进行分类。
现在,我想运行pythonanywhere.com中托管的代码。但是,在加载模型时出现此错误:
ValueError:将形状转换为TensorShape时出错:int()的无效文字的基数为10:“ class_name”。
我不知道是否与版本有关。首先,我使用python 3.8和最新的tensorflow版本进行了培训,但是由于Flask不允许3.8中包含所有必需的库,因此我在tensorflow 2.0.0的烧瓶中使用了3.7。因此,我使用3.7和tf 2.0.0在计算机中重新训练了模型,并上传了较新的模型文件。但是,相同的错误仍然存在。
--update--我把日志错误放在这里
运行WSGI应用程序ValueError时出错:将形状转换为TensorShape时出错:int()的无效文字,基数为10:“ class_name”。
从主要导入应用程序以应用程序#noqa的格式输入文件“ /var/www/user_pythonanywhere_com_wsgi.py”,第16行
在模型= tensorflow.keras.models.load_model('/ home / user / mysite / models / modelo')中的文件“ /home/user/mysite/main.py”,第11行
在load_model中的文件“ /usr/lib/python3.7/site-packages/tensorflow_core/python/keras/saving/save.py”,第150行返回save_model_load.load(文件路径,编译)
文件“ /usr/lib/python3.7/site-packages/tensorflow_core/python/keras/saving/saved_model/load.py”,第86行,在加载模型= tf_load.load_internal(路径,loader_cls = KerasObjectLoader)中
在load_internal export_dir中的文件“ /usr/lib/python3.7/site-packages/tensorflow_core/python/saved_model/load.py”,第541行)
init self._finalize()中的文件“ /usr/lib/python3.7/site-packages/tensorflow_core/python/keras/saving/saved_model/load.py”,第103行
_finalize node.add(layer)中的文件“ /usr/lib/python3.7/site-packages/tensorflow_core/python/keras/saving/saved_model/load.py”,第127行
_method_wrapper中的文件“ /usr/lib/python3.7/site-packages/tensorflow_core/python/training/tracking/base.py”,第457行result = method(self,* args,** kwargs)
文件“ /usr/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/sequential.py”,第174行,添加batch_shape = batch_shape,dtype = dtype,name = layer.name +'_input' )
输入“ input_tensor = tensor”中的文件“ /usr/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/input_layer.py”,行263
文件“ /usr/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/input_layer.py”,第125行,init中是ragged = ragged)
文件“ /usr/lib/python3.7/site-packages/tensorflow_core/python/keras/backend.py”,行1057,在占位符x = array_ops.placeholder(dtype,shape = shape,name = name)
文件“ /usr/lib/python3.7/site-packages/tensorflow_core/python/ops/array_ops.py”,第2630行,在占位符中返回gen_array_ops.placeholder(dtype = dtype,shape = shape,name = name)
文件“ /usr/lib/python3.7/site-packages/tensorflow_core/python/ops/gen_array_ops.py”,行6669,占位符shape = _execute.make_shape(shape,“ shape”)
在make_shape e)中的文件“ /usr/lib/python3.7/site-packages/tensorflow_core/python/eager/execute.py”,第211行)
错误来自张量流文件,我只是传递保存的模型所在的路径
TensorFlow当前无法在PythonAnywhere Web应用程序中运行。如果您使用的是Keras,则可以尝试切换到Theano后端(已确认可以正常工作)。上面也有一个简短的帮助页面。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句