无法将符号张量 (lstm_15/strided_slice:0) 转换为 numpy 数组

Posted

技术标签:

【中文标题】无法将符号张量 (lstm_15/strided_slice:0) 转换为 numpy 数组【英文标题】:Cannot convert a symbolic Tensor (lstm_15/strided_slice:0) to a numpy array 【发布时间】:2021-05-15 01:59:33 【问题描述】:

我无法构建 LSTM 网络,因为每次我尝试使用下面的代码创建它时都会收到以下错误: NotImplementedError: Cannot convert a symbolic Tensor (lstm_15/strided_slice:0) to a numpy array. This error may indicate that you're trying to pass a Tensor to a NumPy call, which is not supported

我的代码如下:

rnn_model = Sequential()
rnn_model.add(LSTM(16,input_shape=(20,1)))
rnn_model.add(Dense(10))
rnn_model.add(Dense(1))

到底出了什么问题?

【问题讨论】:

添加完整代码以重现您的错误,您的 sn-p 完全有效。你可以看看这个指南:How to create a Minimal, Reproducible Example. 这能回答你的问题吗? NotImplementedError: Cannot convert a symbolic Tensor (lstm_2/strided_slice:0) to a numpy array. T 【参考方案1】:

这是因为您使用的是不兼容的 NumPy 版本。 如果您使用的是 TensorFlow 2.4.1,则需要使用以下版本的 Numpy:

pip install -U numpy==1.19.2

【讨论】:

如果您使用的是 tf 2.4.1,它也不适用于 numpy 1.19.2。

以上是关于无法将符号张量 (lstm_15/strided_slice:0) 转换为 numpy 数组的主要内容,如果未能解决你的问题,请参考以下文章

LSTM 网络张量流的输入

ValueError:层激活_1的输入不是符号张量

带有 Shap ValueError 的 DeepExplainer:使用不是符号张量的输入调用了 Layersequential_1

张量流 LSTM 模型中的 NaN 损失

NotImplementedError:无法将符号张量 (2nd_target:0) 转换为 numpy 数组

无法为具有形状“(?,4)”的张量“Placeholder_10:0”提供形状(4,)的值