TensorFlow入门第一天
程序员文章站
2022-07-06 21:54:34
...
TensorFlow入门学习记录
在配置好之后开始入门学习TensorFlow,第一个当然是熟悉的Hello World了
- Hello TensorFlow
import tensorflow as tf
#使用tf.constant定义打印一个hello tensorflow字符串
test = tf.constant('hello tensorflow')
#执行计算图,利用with定义一个session会话并跑起来
with tf.Session() as sess:
print(sess.run(test))
运行后
发现会好几行的警告,首先第一个是警告我们不推荐使用tf.Session()去定义,而是使用tf.compat.v1.Session()去定义,在更改后这个waring就没有了;第二个是告诉我们TensorFlow可以运行的更快,然后可以从源码构建提高运行速度…太麻烦了,这里可以直接添加两行代码忽略掉没必要的警告
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
- 在搞清楚这些警告后开始看下程序,首先是使用tf.constant定义了一个字符串常量’hello tensorflow’,然后看输出结果前面多了个b,实际上b是python3.x里默认的str是(py2.x里的)unicode, bytes是(py2.x)的str, b”“前缀代表的就是bytes,这里可以不用管它,但如果要去掉前缀b和单引号的话可以使用Python的decode()函数
print(sess.run(test).decode())
这样输出结果就不会显示前缀b和单引号了
3.在定义好常量后,要输出这个常量,Session 是 Tensorflow 为了控制,和输出文件的执行语句. 运行 session.run() 可以获得想要的运行结果然后在使用print打印出来;使用session时有两个方法,举个例子就像输出 1+2=3
第一种:
num1 = tf.constant(1)
num2 = tf.constant(2)
result = num1+num2
sess = tf.Session()
out = sess.run(result)
print(out)
第二种:
num1 = tf.constant(1)
num2 = tf.constant(2)
result = num1+num2
with tf.Session() as sess:
out = sess.run(result)
print(out)
这两种的写法还是有点区别的:
一个session可能会拥有或者占用一些资源,当我们不需要该session时就可以将这个session关闭释放资源。这里有两种方式:
① 在没使用with tf.Session创建上下文执行时需要在程序最后用 session.close()方法关闭session释放资源;
② 使用with tf.Session()创建上下文执行时,上下文退出时会自动释放。