欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

TensorFlow入门第一天

程序员文章站 2022-07-06 21:54:34
...

TensorFlow入门学习记录

在配置好之后开始入门学习TensorFlow,第一个当然是熟悉的Hello World了

  1. 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))

运行后
TensorFlow入门第一天
发现会好几行的警告,首先第一个是警告我们不推荐使用tf.Session()去定义,而是使用tf.compat.v1.Session()去定义,在更改后这个waring就没有了;第二个是告诉我们TensorFlow可以运行的更快,然后可以从源码构建提高运行速度…太麻烦了,这里可以直接添加两行代码忽略掉没必要的警告

import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
  1. 在搞清楚这些警告后开始看下程序,首先是使用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()创建上下文执行时,上下文退出时会自动释放。