运行代码之后,控制台除了输出应该有的结果外,还多了一行:
I T:srcgithub ensorflow ensorflowcoreplatformcpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
就是说您当前的CPU可以支持未编译为二进制的指令AVX2
要想消除该提示,需要在代码中添加两行代码:
import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
查阅有得知,这行代码是用于设置TensorFlow的日志级别的。
-----------------------------------------------------------------------------------------------------------------------------------------
2.
TensorFlow中出现with tf.Session as sess: AttributeError: __enter__错误解决方法
其实该类问题对于新手(鄙人就是)而言很常见:AttributeError表示所调用对象属性错误,记住Python是面向对象语言,该错误就是Python异常类的错误。
#创建一个会话运行TensorFlow程序
with tf.Session as sess:
init_op = tf.global_variables_initializer()
#初始化变量
sess.run(init_op)
print(sess.run(w1))
print(sess.run(w2))
这段程序会报错,因为调用的是TensorFlow的Session函数,而不是Session变量,所以必须写成tf.Session(),加上括号之后就不会出现编译错误。
with tf.Session() as sess:
init_op = tf.global_variables_initializer()
#初始化变量
sess.run(init_op)
print(sess.run(w1))
print(sess.run(w2))
诸如此类的错误,一定要深刻记住,要调用某一个功能函数要加括号,毕竟你说调用的函数不是一个变量。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TypeError: The value of a feed cannot be a tf.Tensor object. Acceptable feed values include Python scalars, strings, lists, numpy ndarrays, or TensorHandles.For reference, the tensor object was Tensor("ExpandDims:0", shape=(1, 28, 28, 1), dtype=float32) which was passed to the feed with key Tensor("input0:0", dtype=float32).
将Tensor转为array
lbb=onehot_labels.eval()
张量直接转列表
即可,因为参数类型不接受张量,接受列表等
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Tensorflow中张量数据类型的转换
字符串转为数字: tf.string_to_number (string_tensor, out_type=None, name=None) 转为64位浮点类型–float64: tf.to_double(x, name=’ToDouble’) 转为32位浮点类型–float32: tf.to_float(x, name=’ToFloat’) 转为32位整型–int32: tf.to_int32(x, name=’ToInt32’) 转为64位整型–int64: tf.to_int64(x, name=’ToInt64’) 将x或者x.values转换为dtype # tensor a is [1.8, 2.2], dtype=tf.float # tf.cast(a, tf.int32) ==> [1, 2],dtype=tf.int32 tf.cast(x, dtype, name=None)
InvalidArgumentError (see above for traceback): Cannot assign a device for operation 'shuffle_batch': Could not satisfy explicit device specification '/device:GPU:0' because no supported kernel for GPU devices is available.
with tf.Session(config=tf.ConfigProto(allow_soft_placement=True)) as sess: