Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Tensorflow张量设置Keras层的输入?_Tensorflow_Keras_Keras Layer - Fatal编程技术网

如何使用Tensorflow张量设置Keras层的输入?

如何使用Tensorflow张量设置Keras层的输入?,tensorflow,keras,keras-layer,Tensorflow,Keras,Keras Layer,在我的示例中,我使用Keras'Layer.set_input()将Tensorflow预处理输出张量连接到Keras模型的输入。但是,在Keras版本1.1.1之后 如何在较新的Keras版本中实现这一点 示例: # Tensorflow pre-processing raw_input = tf.placeholder(tf.string) ### some TF operations on raw_input ### tf_embedding_input = ... # pre-pr

在我的示例中,我使用Keras'
Layer.set_input()
将Tensorflow预处理输出张量连接到Keras模型的输入。但是,在Keras版本
1.1.1
之后

如何在较新的Keras版本中实现这一点

示例:

# Tensorflow pre-processing
raw_input = tf.placeholder(tf.string)
### some TF operations on raw_input ###
tf_embedding_input = ...    # pre-processing output tensor

# Keras model
model = Sequential()
e = Embedding(max_features, 128, input_length=maxlen)

### THIS DOESN'T WORK ANYMORE ###
e.set_input(tf_embedding_input)
################################

model.add(e)
model.add(LSTM(128, activation='sigmoid'))
model.add(Dense(num_classes, activation='softmax'))

完成预处理后,可以通过调用
input
tensor
param来添加张量作为输入层

因此,在你的情况下:

tf_embedding_input = ...    # pre-processing output tensor

# Keras model
model = Sequential()
model.add(Input(tensor=tf_embedding_input)) 
model.add(Embedding(max_features, 128, input_length=maxlen))

在这一行
model.add(Input(tensor=tf\u embedding\u Input))
上,引发了以下错误:
TypeError:添加的层必须是类层的实例。找到:张量(“tf\u嵌入\u输入:0”,shape=(?,23),dtype=int64)
。我通过将行更改为
model.add(InputLayer(input\u tensor=embedded\u input))
解决了这个问题。谢谢你给我指出了正确的方向!没问题,我通常使用功能性
模型
,而不是
顺序
,在
输入
起作用的地方,但很高兴您在您的末端修复了它。是的,我以前使用过功能性
模型
,并在
输入
层之后的
Lambda层中包装了预处理:
Lambda(preprocess_func,…)
。我可以假设,实际上,这实现了同样的效果吗?事实上,我在回答中也提出了同样的建议。但后来我看到你正在为string
tf.placeholder(tf.string)
创建一个占位符。由于我没有处理NLP,我不确定它是否会与keras一起使用