我正在使用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)
我知道此错误意味着我试图从没有数据的符号张量获取值。换句话说,由于尚未将任何数据分配给张量,因此评估该张量将引发此类错误,但不知道如何解决。
答案 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)