【放假第9天】TensorFlow总结1 基础知识

这两日学的都是TensorFlow,入门编程真的是个无底洞啊,所幸克服了浮躁,希望每日有所进步吧。
主要内容都在word文档里。课件文档也有保存。课程是学习黑马的。

一、基础知识
深度学习的框架,就是为了高效,脱颖而出的一个原因是tensorboard,caffe没记错是因为之前主要是做图片的,虽然后续有所改进,主流是TensorFlow目前。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
#特点:
1.可移植性
2.多语言支持,甚至可以直接写c++和python
3.灵活性和效率 开源库
4.支持 谷歌
在这里插入图片描述

#对比CPU和GPU
GPU专门为计算设计的 相当于小学生*10000

图形处理器由以下器件组成:
(1)显示主芯片显卡的核心,俗称GPU,它的主要任务是对系统输人的视频信息进行构建和渲染。
(2)显示缓冲存储器用来存储将要显示的图形信息以及保存图形运算的中间数据;显示缓存的大小和速度直接影响着主芯片性能的发挥。
(3)RAMD/A转换器把二进制的数字转换成为和显示器相适应的模拟信号。

CPU是专门运行操作系统,吹吹处理业务,计算能力不是特别突出,高中生在这里插入图片描述

二、安装
略 垃圾电脑内存爆了,已经购置iMac Pro

三、开始正式学习笔记整理

02 图的结构

#实现一个加法运算
import TensorFlow tf
a=tf.constant(5.0)
b=tf.constant(3.0)
#他是不能直接加减的

sum1=tf.add(a,b)
print(sum1)
#开启对话
with tf.Session() as sess:
       print(sess.run(sum1))

ps:TensorFlow警告解决 因为不是源码安装
在这里插入图片描述
#TensorFlow的会话session介绍
它就是来运算程序的

在这里插入图片描述

就是说有一个核心 他是通过会话实现的
在这里插入图片描述
以上两种我们一般写第二种 sess.close 是要释放内存

#一次性只能运行一个图,可以在会话中指定图去运行

with tf.Session(graph=g) as sess:
    print(sess.run(c))
    print(a.graph)
    print(sum1.graph)
    print(sess.graph)
    

#交互式interaction
a.eval() 可以直接出来3.0
eval 和sess.run 的区别
https://blog.csdn.net/chengshuhao1991/article/details/78554743

var1=2
var2=3
sum2=var1+var2
#s=tf.Session
#s.run()
#s.close()

with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess:
    #print(sess.run(sum1))
    print(sum1.eval())

#只要有会话的上下文环境,eval都可以使用
但是要注意的是,eval()只能用于tf.Tensor类对象,也就是有输出的Operation。对于没有输出的Operation, 可以用.run()或者Session.run()。Session.run()没有这个限制。

#设置tf.ConfigProto()中参数log_device_placement = True ,可以获取到 operations 和 Tensor 被指派到哪个设备(几号CPU或几号GPU)上运行,会在终端打印出各项操作是在哪个设备上运行的。
https://blog.csdn.net/dcrmg/article/details/79091941

#tf.get_default_graph()
功能:这个函数可以获取当前默认的计算图
例如,在上述代码的with语句块中加入如下语句

a=tf.constant(5.0)
b=tf.constant(6.0)

sum1=tf.add(a,b)

graph=tf.get_default_graph()
print(graph)

#不是op不能运行
var1=2.0
#var2=3
#sum2=var1+var2
#有重载机制,默认会给运算符重载成op类型
sum2=a+var1
print(sum2)


在这里插入图片描述

#placeholder 是一个占位符,也是一个op
它一般是与feed_dict结合在一起使用的

plt=tf.placeholder(tf.float32,[2,3])
#注意位置哦

with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess:
    print(sess.run(plt,feed_dict={plt:[[1,2,3],[4,5,6]]}))

在这里插入图片描述
其实就是类型不一样,不能说我一个框架都是用的别人的东西

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
把维度改为了阶,强行有点自己的东西吧
在这里插入图片描述

在这里插入图片描述

print(a.shape)
在这里插入图片描述
三维指的是,两张表,三行四列,形状的改变在机器学习经常做的
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
可以动态形状修改,但是一定要注意元素数量要匹配

plt.set_shape([3,2])
print(plt)

plt_reshape=plt.set_reshape(plt,[3,3])
print(plt_reshape)

with tf.Session() as sess:
    pass

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
最后一个是万能的

在这里插入图片描述

在这里插入图片描述

其实只是有少数几个我目前用到了,其他的用到再说吧

在这里插入图片描述
#关于trainable
在这里插入图片描述
在这里插入图片描述

#变量op
a=tf.constant([1,2,3,4,5])
var=tf.Variable(tf.random_normal([2,3],mean=0.0,stddev=1.0))
print(a,var)

在这里插入图片描述
变量和常量只是显示不一样而已?? 从这结果肤浅看吧

在这里插入图片描述

#变量op
#1.变量op能够持久化保存,普通张量op是不行的
#2.当定义一个变量op的时候,一定要在会话当中去运行初始化
a=tf.constant([1,2,3,4,5])
var=tf.Variable(tf.random_normal([2,3],mean=0.0,stddev=1.0))
print(a,var)

#必须做一步显示的初始化op
init_op=tf.global_variables_initializer()

with  tf.Session() as sess:
     #必须初始化op
     sess.run(init_op)
     print(sess.run([a,var]))

在这里插入图片描述
#但是我似乎不知道在哪里输入 老师似乎打开的cmd ipython 等自己实操了再说吧
summary可以用来加载模块 后面是路径

在这里插入图片描述

#就是前面不总结,后面的新知识点才回那么多

a=tf.constant([1,2,3,4,5])
var=tf.Variable(tf.random_normal([2,3],mean=0.0,stddev=1.0))
print(a,var)

#必须做一步显示的初始化op
init_op=tf.global_variables_initializer()

with  tf.Session() as sess:
     #必须初始化op
     sess.run(init_op)
     filewriter=plt.summary.FileWriter("./tmp/summary/test/",graph=sess.graph)
     print(sess.run([a,var]))

他是先在左边建立了一个 文件夹 就是路径吧 然后返回值要有一个接收者在这里插入图片描述

可能跟之前的知识点有衔接 好像是虚拟环境说的是

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

发布了39 篇原创文章 · 获赞 1 · 访问量 465

猜你喜欢

转载自blog.csdn.net/qq_40647378/article/details/103659525