在Tensorflow

时间:2017-03-28 03:34:44

标签: python python-2.7 tensorflow concatenation

我想在Tensorflow中连接一个变量和一个张量,但是Tensorflow不会让这两个类型连接起来。

以下是我连接两个张量的方法:

self.embedded_chars = tf.nn.embedding_lookup(self.W, self.input_x) //returns Tensor object
v1 = tf.Variable(tf.zeros([88,77]),dtype=tf.float32)
self.embedded_chars = tf.concat(1,[self.embedded_chars,v1])

但是我收到以下错误:

  

文件“test.py”,第93行,in       l2_reg_lambda = FLAGS.l2_reg_lambda)文件“test.py”,第31行, init       self.embedded_chars = tf.concat(1,[self.embedded_chars,v1])文件“lib / python2.7 / site-packages / tensorflow / python / ops / array_ops.py”,line   1047,在concat       dtype = dtypes.int32).get_shape(文件“lib / python2.7 / site-packages / tensorflow / python / framework / ops.py”,行   651,在convert_to_tensor中       as_ref = False)文件“lib / python2.7 / site-packages / tensorflow / python / framework / ops.py”,行   716,在internal_convert_to_tensor中       ret = conversion_func(value,dtype = dtype,name = name,as_ref = as_ref)文件   “LIB / python2.7 /站点包/ tensorflow /蟒蛇/框架/ constant_op.py”   第176行,在_constant_tensor_conversion_function中       return constant(v,dtype = dtype,name = name)文件“lib / python2.7 / site-packages / tensorflow / python / framework / constant_op.py”,   第165行,常数       tensor_util.make_tensor_proto(value,dtype = dtype,shape = shape,verify_shape = verify_shape))文件   “LIB / python2.7 /站点包/ tensorflow /蟒蛇/框架/ tensor_util.py”   第367行,在make_tensor_proto中       _AssertCompatible(values,dtype)文件“lib / python2.7 / site-packages / tensorflow / python / framework / tensor_util.py”,   第302行,在_AssertCompatible中       (dtype.name,repr(不匹配),类型(不匹配)。 name ))TypeError:预期int32,得到的列表包含类型为'_Message'的张量   代替。

如何正确连接变量和张量?

1 个答案:

答案 0 :(得分:1)

假设您使用的是1.0版: 如果查看文档,您会看到concat(https://www.tensorflow.org/api_docs/python/tf/concat)希望将值作为第一个参数,将axis作为第二个参数。

您的代码应为:

self.embedded_chars = tf.nn.embedding_lookup(self.W, self.input_x) //returns Tensor object
v1 = tf.Variable(tf.zeros([88,77]),dtype=tf.float32)
self.embedded_chars = tf.concat([self.embedded_chars,v1],1)

由于我没有测试它,请告诉我它是否有效!

干杯!