TensorFlow版本问题汇总
1、调用tf.softmax_cross_entropy_with_logits函数出错。
#原因是这个函数,不能按以前的方式进行调用了,只能使用命名参数的方式来调用。 #原来是这样的: tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y, y_)) #修改成这样的: tf.reduce_sum(tf.nn.softmax_cross_entropy_with_logits(logits=y, labels=y_))
2、Tensorflow 函数tf.cocat([fw,bw],2)出错:TypeError: Expected int32, got list containing Tensors of type ‘_Message’ instead.
Expected int32, got list containing Tensors of type ‘_Message’ inst
原因是11版本的函数形式为:tf.concat(2,[fw,bw]),即应把串联的维度与串联值位置调换即可.
3、Input ‘split_dim’ of ‘Split’ Op has type float32 that does not match expected type of int32
#原来是这样的: This is because in Tensorflow versions < 0.12.0 the split function takes the arguments as: x = tf.split(0, n_steps, x) # tf.split(axis, num_or_size_splits, value) #修改成这样的: The tutorial you are working from was written for versions > 0.12.0, which has been changed to be consistent with Numpy’s split syntax: x = tf.split(x, n_steps, 0) # tf.split(value, num_or_size_splits, axis)
4、‘module’ object has no attribute ‘pack’
因为TF后面的版本修改了这个函数的名称,把 tf.pack 改为 tf.stack。
5、The value of a feed cannot be a tf.Tensor object. Acceptable feed values include Python scalars, strings, lists, or numpy ndarrays
数据集是feed输入的,feed的数据格式是有要求的。
解决:img,label = sess.run[img,label], 用返回值。
6、module 'tensorflow.python.ops.nn' has no attribute 'rnn_cell'
#原因是1.0版本改了不少地方啊... #原来是这样的: from tensorflow.python.ops import rnn, rnn_cell lstm_cell = rnn_cell.BasicLSTMCell(rnn_size,state_is_tuple=True) outputs, states = rnn.rnn(lstm_cell, x, dtype=tf.float32) #修改成这样的: from tensorflow.contrib import rnn lstm_cell = rnn.BasicLSTMCell(rnn_size) outputs, states = rnn.static_rnn(lstm_cell, x, dtype=tf.float32)
7、Variable basic/rnn/basic_lstm_cell/weights does not exist, or was not created with tf.get_variable(). Did you mean to set reuse=None in VarScope?
with tf.variable_scope(scope_name, reuse=None) as scope: scope.reuse_variables() w = tf.get_variable("weight", shape, initializer = random_normal_initializer(0., 0.01))) b = tf.get_variable("biase", shape[-1], initializer = tf.constant_initializer(0.0)) #或: with tf.variable_scope(scope_name, reuse=True): w = tf.get_variable("weight") b = tf.get_variable("biase")