我想在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'的张量 代替。
如何正确连接变量和张量?
答案 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)
由于我没有测试它,请告诉我它是否有效!
干杯!