我是tensorflow的新手,我正在尝试将一些双向LSTM的代码从旧版本的tensorflow更新到最新版本(1.0),但是我得到了这个错误:
形状必须是等级2,但对于'MatMul_3'(op:'MatMul')具有输入形状的等级3:[100,?,400],[400,2].
该错误发生在pred_mod上.
_weights = {
# Hidden layer weights => 2*n_hidden because of foward + backward cells
'w_emb' : tf.Variable(0.2 * tf.random_uniform([max_features,FLAGS.embedding_dim], minval=-1.0, maxval=1.0, dtype=tf.float32),name='w_emb',trainable=False),
'c_emb' : tf.Variable(0.2 * tf.random_uniform([3,FLAGS.embedding_dim],minval=-1.0, maxval=1.0, dtype=tf.float32),name='c_emb',trainable=True),
't_emb' : tf.Variable(0.2 * tf.random_uniform([tag_voc_size,FLAGS.embedding_dim], minval=-1.0, maxval=1.0, dtype=tf.float32),name='t_emb',trainable=False),
'hidden_w': tf.Variable(tf.random_normal([FLAGS.embedding_dim, 2*FLAGS.num_hidden])),
'hidden_c': tf.Variable(tf.random_normal([FLAGS.embedding_dim, 2*FLAGS.num_hidden])),
'hidden_t': tf.Variable(tf.random_normal([FLAGS.embedding_dim, 2*FLAGS.num_hidden])),
'out_w': tf.Variable(tf.random_normal([2*FLAGS.num_hidden, FLAGS.num_classes]))}
_biases = {
'hidden_b': tf.Variable(tf.random_normal([2*FLAGS.num_hidden])),
'out_b': tf.Variable(tf.random_normal([FLAGS.num_classes]))}
#~ input PlaceHolders
seq_len = tf.placeholder(tf.int64,name="input_lr")
_W = tf.placeholder(tf.int32,name="input_w")
_C = tf.placeholder(tf.int32,name="input_c")
_T = tf.placeholder(tf.int32,name="input_t")
mask = tf.placeholder("float",name="input_mask")
# Tensorflow …Run Code Online (Sandbox Code Playgroud)