实验题目
1)已知两个张量[1,3,5,7]和[2,4,4,8],编写一个模型,计算两个张量的加法,输出结果,并在tensorboard中显示 2)已知张量[1,2,3,4,5,6,7,8,9,10,11,12]有12个元素,利用tf.reshape()将其形状转换为[2,3,2]的三维张量
实验过程
第一题
- 在TensorFlow中,所有的数据都通过张量的形式来表示
- 从功能的角度,张量可以简单理解为多维数组
零阶张量表示标量(scalar),也就是一个数; 一阶张量为向量(vector),也就是一维数组; n阶张量可以理解为一个n维数组; - 张量并没有真正保存数字,它保存的是计算过程张量的概念
**打开Anaconda Powershell Prompt **
conda activate tensorflow #启动tensorflow
jupyter notebook #进入jupyter notebook
代码
import tensorflow as tf
#清除default graph和不断增加的节点
tf.reset_default_graph()
#logdir改为自己机器上的合适路径
logdir = 'D:/log'
#定义一个简单的计算图,实现两个张量的加法
a = tf.constant([1,3,5,7],dtype = tf.int32)
b = tf.constant([2,4,4,8],dtype = tf.int32)
result = tf.add(a,b)
with tf.Session() as sess:
print(sess.run(result))
#生成一个写日志的writer,并将当前的TensorFlow计算图写入日志
writer = tf.summary.FileWriter(logdir,tf.get_default_graph())
writer.close()
这时打开自己的文件夹,在你自己所规定的路径下会多一个log的文件,里面包含了创建的日志文件。
TensorFlow支持不同的类型
- 实数tf.float32, tf.float64
- 整数tf.int8, tf.int16, tf.int32, tf.int64, tf.uint8
- 布尔tf.bool
- 复数tf.complex64, tf.complex128
默认类型:不带小数点的数会被默认为int32带小数点的会被默认为float32
启动TensorBoard 打开Anaconda Prompt 首先也要启动tensorflow TensorBoard不需要额外安装,在TensorFlow安装时已自动完成 在Anaconda Prompt中运行TensorBoard,并将日志的地址指向程序日志输出的地址命令:
tensorboard--logdir=D:\log #后面的路径与你自己在前面保存的一致
启动TensorBoard启动服务的端口默认为6006;使用–port 参数可以改编启动服务的端口 TensorBoard是一个在本地启动的服务,启动完成后在浏览器输入网址: http://localhost:6006(在命令中直接复制访问)即可进行访问。 注意这个后面有一个Press Ctrl+c是停止当前进程的意思千万不要点,否则直接访问失败 就像下面这张图,就因为这个简单的小原因,我卡住了好久
正常情况下就会进入这样一个页面,在这里选择GRAPHS 这样第一个实验就做完了
第二题
对于第二题是非常简单的直接在jupyter notebook中输入代码即可
import tensorflow.compat.v1 as tf #导入tensorflow类库,别名为tf
#定义c1是一维张量,共有12个元素
c1 = tf.constant([1,2,3,4,5,6,7,8,9,10,11,12],dtype = tf.float32,name = "c1")
c2 = tf.reshape(c1,[2,3,2])
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print(sess.run(c1))
print(sess.run(c2))
|