https://www.bilibili.com/video/BV1QJ411W7SS?p=12&spm_id_from=pageDriver
P12 学习笔记
相关说明
API(Application Programming Interface,应用程序接口)是一些预先定义的接口(如函数、HTTP接口),或指软件系统不同组成部分衔接的约定。用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节。
一 语句及说明
1 定义一个常量和一个变量
import tensorflow as tf
data1 = tf.constant(2.5)
data2 = tf.Variable(10, name = 'var')
(1) 每句分析
第一句是引入tensorflow模块
引入tensorflow 模块,并用tf来作为tensorflow的简写
import tensorflow as tf
第二句是定义一个数值为2.5(浮点型)的常量
data1 = tf.constant(2.5)
第三局是定义一个数值为10,名为var的变量
data2 = tf.Variable(10, name = ‘var’)
(2) 运行结果
可以看到,运行print之后,并没有把数据内容打印出来,而是打印了数据的描述信息,如下所示
tf.Tensor(2.5, shape=(), dtype=float32)
<tf.Variable ‘var:0’ shape=() dtype=int32, numpy=10>
第一行描述的是data1的信息,tensor描述的是一个张量,shape描述的是维度,float32表明当前的数据类型。
第二行描述的data2的信息,tf.Variable表示这是一个变量,int32表示它是一个32位的int类型。
2 打印data1和data2
(1) 代码
import tensorflow as tf
data1 = tf.constant(2.5)
data2 = tf.Variable(10, name = 'var')
tf.print(data1)
tf.print(data2)
(2) 结果展示
3 定义数据基础类型
(1) 定义定点型数据 data3 的代码
import tensorflow as tf
data1 = tf.constant(2.5) # 定义了一个数值为2.5的常量,2.5是一个浮点型常量
data2 = tf.Variable(10, name = 'var') #定义了一个数值为10,字为var的变量
data3 = tf.constant(2, dtype = tf.int32)
print(data1)
print(data2)
print(data3)
tf.print(data1)
tf.print(data2)
tf.print(data3)
(2) 结果展示 
4 变量的初始化
参考链接
https://blog.youkuaiyun.com/xuefengyang666/article/details/105430538/
(1) 视频中的error
(2)解决办法
import tensorflow as tf
data1 = tf.constant(2.5) # 定义了一个数值为2.5的常量,2.5是一个浮点型常量
data2 = tf.Variable(10, name = 'var') #定义了一个数值为10,字为var的变量
data3 = tf.constant(2, dtype = tf.int32)
print(data1)
print(data2)
print(data3)
# 由于data2是一个变量,需要进行变量的初始化
init = tf.global_variables_initializer()
tf.print(data1)
tf.print(data2)
tf.print(data3)
结果展示
看,又出错了吧,又是因为版本不同,出错了,暂时不解决,留着。
二 遇到的问题
TensorFlow2.x和PyTorch已经很像了,可以直接输出Tensor的值,不用sess.run()了,很直观。
1 由于tensorflow2.X 和 tensorflow1.X 版本不同,引起的报错
(1) 在tensorflow2.0以前的版本中,输出需要调用Session模块,如下所示
import tensorflow as tf
data1 = tf.constant(2.5)
data2 = tf.Variable(10, name = 'var')
sess = tf.Session()
print(sess.run(data1))
print(sess.run(data2))
(2) 在tensorflow2.X版本中,如果还想使用Session模板,则需要使用兼容V1版本的语句,如下所示
import tensorflow as tf
tf.compat.v1.disable_eager_execution()
data1 = tf.constant(2.5)
data2 = tf.Variable(10, name = 'var')
sess= tf.compat.v1.Session()
print(sess.run(data1))
# print(sess.run(data2)) # 运行这句就出错,不知道为什么
结果如下所示
为什么会出错呢???奇了怪了。。
(3)在tensorflow2.X版本中不使用Session模块进行打印
import tensorflow as tf
data1 = tf.constant(2.5)
data2 = tf.Variable(10, name = 'var')
tf.print(data1)
tf.print(data2)
结果如下所示
2 引用tensorflow模块后,tab键无法完成代码补全的功能
(1) 问题
这里出现了一个问题,引入tensorflow模块后,按tab键不能完成代码补全的功能。
(2) 解决办法
打开prompt终端,在里面输入以下命令
pip install jedi==0.17.2
将jedi版本从0.18.0降至0.17.2
问题其实并没有解决,但是能出现一些代码用于补全,以后解决了再写吧。
参考链接
https://blog.youkuaiyun.com/weixin_44002829/article/details/114985176
如有侵权,请联系删除。