如何将numpy数组转换为keras张量
Posted
技术标签:
【中文标题】如何将numpy数组转换为keras张量【英文标题】:how to convert numpy array to keras tensor 【发布时间】:2019-03-19 21:26:32 【问题描述】:使用 keras 模型进行预测时,出现以下错误
AttributeError: 'Tensor' 对象没有属性 'ndim'
原因是权重是numpy数组,而不是张量。 那么呢?
【问题讨论】:
你试过this吗? 谢谢你,Bazingaa。我正在使用 Keras。 keras张量有办法吗? 好的,我只是想代表你在谷歌上解决这个问题。也许尝试使用 this 使用.variable
谢谢你,Bazingaa。它不起作用。
嗨,你能提供更多的上下文吗? here你可以找到一些好的建议来帮助我们帮助你
【参考方案1】:
要将numpy数组转换为张量,
import tensor as tf
#Considering y variable holds numpy array
y_tensor = tf.convert_to_tensor(y, dtype=tf.int64)
#您可以使用任何最适合的可用数据类型 - https://www.tensorflow.org/api_docs/python/tf/dtypes/DType
【讨论】:
也可以使用import tensorflow as tf
【参考方案2】:
在 TensorFlow 中可以通过以下方式完成:
import tensorflow.keras.backend as K
import numpy as np
a = np.array([1,2,3])
b = K.constant(a)
print(b)
# <tf.Tensor 'Const_1:0' shape=(3,) dtype=float32>
print(K.eval(b))
# array([1., 2., 3.], dtype=float32)
在原始 keras 中,应该将 import tensorflow.keras.backend as K
替换为 from keras import backend as K
。
【讨论】:
根据 Keras 的文档,变量与张量不同。 >>> keras_var = K.variable(np_var)` <br> >>> K.is_keras_tensor(keras_var) # 变量不是张量。<br> False<br> >>> keras_placeholder = K.placeholder (shape=(2, 4, 5))<br> >>> K.is_keras_tensor(keras_placeholder) # 占位符就是张量。<br> True<br>
你说得对,我刚刚更新了我的答案以使用 K.constant() 而不是 K.variable(),它返回一个张量而不是 print() 所说的变量
这简直太完美了!谢谢以上是关于如何将numpy数组转换为keras张量的主要内容,如果未能解决你的问题,请参考以下文章
Keras:ValueError:无法将 NumPy 数组转换为张量(不支持的对象类型列表)