【发布时间】:2019-03-19 21:26:32
【问题描述】:
使用 keras 模型进行预测时,出现以下错误
AttributeError: 'Tensor' 对象没有属性 'ndim'
原因是权重是numpy数组,而不是张量。
那么如何将numpy数组转换为keras张量呢?
【问题讨论】:
使用 keras 模型进行预测时,出现以下错误
AttributeError: 'Tensor' 对象没有属性 'ndim'
原因是权重是numpy数组,而不是张量。
那么如何将numpy数组转换为keras张量呢?
【问题讨论】:
要将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
在 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_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>