将张量转换为numpy数组

时间:2019-12-13 22:41:08

标签: python numpy tensorflow keras tensor

我正在使用Keras和tensorflow。当我想使用K.eval将张量转换为numpy数组时,

out_array = K.eval(input_tensor)

我得到他以下错误:

InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'input_1' with dtype float and shape [?,224,224,3]

任何人都可以帮忙吗? 我已经测试了以下方法,但没有成功:

sess = K.get_session()
out_array = sess.run(input_tensor)

holder = tf.placeholder(tf.float32, shape=(None, 224,224,3))
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    out_array = sess.run([input_tensor], feed_dict=holder)

我知道此错误意味着我试图从没有数据的符号张量获取值。换句话说,由于尚未将任何数据分配给张量,因此评估该张量将引发此类错误,但不知道如何解决。

1 个答案:

答案 0 :(得分:-1)

如果您想通过直接向Keras层中输入一些值来获取输出值的方法,可以执行以下操作。

from tensorflow.keras.layers import Input, Dense
from tensorflow.keras.models import Model
import tensorflow.keras.backend as K
import tensorflow as tf
import numpy as np

ph = tf.placeholder(shape=[None, 5], dtype=tf.float32)
inp = Input(shape=(5,), tensor=ph)
out = Dense(10)(inp)

x = np.random.normal(size=(2,5))
out_array = K.get_session().run(out, feed_dict={ph: x})
print(out_array)