如何在张量流模型中将张量转换为Numpy数组



我一直在尝试使用深度学习中提供的代码来创建LSTM模型。Coursera上的AI教程。

model = tf.keras.Sequential([
tf.keras.layers.Embedding(10000, 64),
tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(64, return_sequences=True)),
tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(32)),
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(1, activation='sigmoid')
])

然而,我得到了这个错误:

"Cannot convert a symbolic Tensor (bidirectional_4/forward_lstm_4/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"

如果我去掉双向层,代码运行良好。

我知道还有其他几个问题涉及将张量转换为numpy数组的问题。然而,我找不到一个解决我的问题的,因为:

a( 它们都是在模型之外处理这样的问题。我的问题是,模型甚至无法实例化,因为一个层似乎很难与另一个层通信,而我还没有找到解决方案来处理这个问题和

b( 这是完全相同的代码,在Colab笔记本电脑中运行得很好(与我的桌面上的TF版本相同(,但在我的台式机上失败了。

谢谢,

事实证明,这是numpy 2.0及以上版本的问题。当我将numpy版本降级到1.19.5时,它运行得很好。

最新更新