2017-06-22 6 views
0

テンソルレイヤーのconcatLayerを使用して2つの入力を連結しています.1つは埋め込み、もう1つはその他の追加入力です。 tl.layers.ConcatLayerは常にTypeErrorに実行されます: "予想されるint32、代わりにタイプ '_Message'のテンソルを含むリストがあります。テンソルレイヤーからのタイプエラーconcatLayer tf.concatによるAPI変更

誰が助けることはできますか?|

はtf.concatは()APIの変更が原因である可能性がありますが、私は、TF 1.2.0 + tensorlayer 1.5.1(アナコンダ4.3.0のpython 2.7.13)を使用していますようですかおかげ-Wei

ネットワーク設計:

emb_net = tl.layers.EmbeddingInputlayer(
    inputs = x, 
    vocabulary_size = VOCAB_SIZE, 
    embedding_size = FLAGS.embedding_size, 
    E_init = tf.random_uniform_initializer(
     -FLAGS.init_scale, FLAGS.init_scale), 
    name = 'embedding') 

word_bound = tl.layers.InputLayer(
    inputs = x_wb, 
    name = 'word_boundary') 

network = tl.layers.ConcatLayer(
    layer = [emb_net, word_bound], 
    concat_dim = 1, 
    name = 'concat_layer') 

エラーメッセージ:

File "./tensorlayer_lstm_classifier.py", line 147, in do_training 
    reuse=None) 
    File "./tensorlayer_lstm_classifier.py", line 53, in inference 
    name = 'concat_layer') 
    File "/Users/lin/anaconda2/lib/python2.7/site-packages/tensorlayer/layers.py", line 4717, in __init__ 
    self.outputs = tf.concat(concat_dim, self.inputs, name=name) 
    File "/Users/lin/anaconda2/lib/python2.7/site-packages/tensorflow/python/ops/array_ops.py", line 1043, in concat 
    dtype=dtypes.int32).get_shape(
    File "/Users/lin/anaconda2/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 676, in convert_to_tensor 
    as_ref=False) 
    File "/Users/lin/anaconda2/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 741, in internal_convert_to_tensor 
    ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref) 
    File "/Users/lin/anaconda2/lib/python2.7/site-packages/tensorflow/python/framework/constant_op.py", line 113, in _constant_tensor_conversion_function 
    return constant(v, dtype=dtype, name=name) 
    File "/Users/lin/anaconda2/lib/python2.7/site-packages/tensorflow/python/framework/constant_op.py", line 102, in constant 
    tensor_util.make_tensor_proto(value, dtype=dtype, shape=shape, verify_shape=verify_shape)) 
    File "/Users/lin/anaconda2/lib/python2.7/site-packages/tensorflow/python/framework/tensor_util.py", line 374, in make_tensor_proto 
    _AssertCompatible(values, dtype) 
    File "/Users/lin/anaconda2/lib/python2.7/site-packages/tensorflow/python/framework/tensor_util.py", line 302, in _AssertCompatible 
    (dtype.name, repr(mismatch), type(mismatch).__name__)) 
TypeError: Expected int32, got list containing Tensors of type '_Message' instead. 

答えて

0

あなたは、xとx_wbの大きさを確認することができますか?

+0

連結入力が3次元であるため、軸入力がcocat_dim = 2に修正されました。 –

0

まだ少しはファイル anaconda2/libに/ python2.7 /のsite-packages/tensorlayer/layers.py、ライン4717に

を当惑が、私はちょうどTFの最初の行を保つ 、問題を解決しました.concat()

try: # TF1.0 
    self.outputs = tf.concat(self.inputs, concat_dim, name=name) 
except: # TF0.12 
    self.outputs = tf.concat(concat_dim, self.inputs, name=name) 
関連する問題