使用SavedModel进行TensorFlow推理:期望strides属性为int64_t类型的值,但得到的是numpy.int32

我正在尝试使用预训练的TensorFlow模型对图像进行分类。

我从TensorFlow Hub下载了efficientnet模型

  1. Python代码从.pb文件中加载模型。

  2. 然后加载一个样本图像,将图像调整到224×224大小,将RGB值压缩到[0,1]范围内,并添加另一个维度使其成为4维(图像集合),因为模型需要这种格式。

  3. 使用col_x进行推理。最终输入给模型的形状是(1, 224, 224, 3)。

但我得到了这个错误:

Traceback (most recent call last):  File "C:\Program Files\Python36\lib\site-packages\tensorflow\python\ops\gen_nn_ops.py", line 926, in conv2d    "dilations", dilations)tensorflow.python.eager.core._FallbackException: Expecting int64_t value for attr strides, got numpy.int32During handling of the above exception, another exception occurred:Traceback (most recent call last):  File "<pyshell>", line 1, in <module>  File "C:\Program Files\Python36\lib\site-packages\tensorflow\python\keras\engine\base_layer.py", line 968, in __call__    outputs = self.call(cast_inputs, *args, **kwargs)  File "C:\Program Files\Python36\lib\site-packages\tensorflow\python\keras\engine\network.py", line 719, in call    convert_kwargs_to_constants=base_layer_utils.call_context().saving)  File "C:\Program Files\Python36\lib\site-packages\tensorflow\python\keras\engine\network.py", line 888, in _run_internal_graph    output_tensors = layer(computed_tensors, **kwargs)  File "C:\Program Files\Python36\lib\site-packages\tensorflow\python\keras\engine\base_layer.py", line 968, in __call__    outputs = self.call(cast_inputs, *args, **kwargs)  File "C:\Program Files\Python36\lib\site-packages\tensorflow\python\keras\layers\convolutional.py", line 207, in call    outputs = self._convolution_op(inputs, self.kernel)  File "C:\Program Files\Python36\lib\site-packages\tensorflow\python\ops\nn_ops.py", line 1106, in __call__    return self.conv_op(inp, filter)  File "C:\Program Files\Python36\lib\site-packages\tensorflow\python\ops\nn_ops.py", line 638, in __call__    return self.call(inp, filter)  File "C:\Program Files\Python36\lib\site-packages\tensorflow\python\ops\nn_ops.py", line 237, in __call__    name=self.name)  File "C:\Program Files\Python36\lib\site-packages\tensorflow\python\ops\nn_ops.py", line 2014, in conv2d    name=name)  File "C:\Program Files\Python36\lib\site-packages\tensorflow\python\ops\gen_nn_ops.py", line 933, in conv2d    data_format=data_format, dilations=dilations, name=name, ctx=_ctx)  File "C:\Program Files\Python36\lib\site-packages\tensorflow\python\ops\gen_nn_ops.py", line 1022, in conv2d_eager_fallback    ctx=ctx, name=name)  File "C:\Program Files\Python36\lib\site-packages\tensorflow\python\eager\execute.py", line 60, in quick_execute    inputs, attrs, num_outputs)tensorflow.python.framework.errors_impl.UnknownError: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above. [Op:Conv2D]

回答:

我能够重现你的错误,请将最后一行更改为predict或evaluate,或任何你想要进行推理的函数。

model.predict(col_x)

你使用的是model(col_x),这会将图像直接作为类属性发送给模型。

另外,对于另一个错误,我认为你的系统可能没有使用可用的GPU,请安装正确的TensorFlow和CUDA版本以实现此目的。

请访问这个回答哪些TensorFlow和CUDA版本组合是兼容的?以进行更正。

祝好运。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注