Tensorflow入门学习笔记汇总
一、环境准备
1、安装python:下载地址https://www.python.org/downloads/windows/下载并安装(推荐python3)
2、安装对应python版本的库:https://www.lfd.uci.edu/~gohlke/pythonlibs/
(1)Numpy库:

(2)Tensorflow库:

- 测试安装:

3、安装jdk:
下载地址——https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
4、开发环境方法一使用elipse开发(推荐java版本,neon),直接解压到安装目录即可:
①下载地址——https://www.eclipse.org/downloads/packages/
②安装pydev插件——>运行Eclipse之后,选择help-->Install new Software——>点击Add,添加pydev:http://pydev.org/updates/
5、开发环境方法二安装eclipse+pydev插件——>将带pydev插件的eclipse(eclipse-4.6.1-with-pydev.zip)解压即可。
二、Tensorflow = Tensor(张量) + Flow(计算图)
1、优势
- 平台支持性良好,Windows, Linux, macOS等,IOS和Android;
- 提供简单且灵活的Python API接口,内部使用C++进行优化;
- 丰富的算子,可以很容易搭建各种深度学习模型,如CNN和RNN模型;
- 提供可视化工具TensorBoard,这个是TF独有的优势;
- 支持CPU和GPU,支持分布式多机多卡训练;
2、张量(任意维度):
(1)张量=shape+数据类型+名字

(2)数据类型:

( 3 )几种常见创建张量的方法:
a = tf.constant([1, 1, 1]) # 定义一个costant张量
b = tf.zeros([2, 3], tf.int32) # [[0, 0, 0], [0, 0, 0]]
c = tf.ones([2, 3], tf.int32) # [[1, 1, 1], [1, 1, 1]]
d = tf.random_normal([5, 5], mean=0.0, stddev=1.0) # 均值为0,标准差为1的高斯分布
e = tf.random_uniform([5, 5], minval=0, maxval=1) # [0, 1]内的均匀分布
f = tf.placeholder(tf.int32, [3,]) # 定义一个占位张量
(4)变量(有状态的张量,就是存储的实际值是可以被改变的)
主要使用两个类:tf.Variable类和tf.train.Saver类。变量必须要先被初始化(initialize),而且可以在训练时和训练后保存(save)到磁盘中。之后可以再恢复(restore)保存的变量值来训练和测试模型。
①变量的声明:
a = tf.Variable([[2, 3], [1, 2]]) # 初始值为[[2, 3], [1, 2]]
b = tf.Variable((tf.zeros([10, 10]))) # 初始值为全0,shape为[10,10]的张量
②初始化:
init = tf.global_variables_initializer() # 初始化所有变量的算子
with tf.Session() as sess:
sess.run(init) # 执行初始化,此时变量被填值
③赋值:
assign_op = a.assign(b) # a的值用b替换
sess.run(assign_op)
3、计算图 由一系列节点(nodes)组成的图模型,每个节点对应的是TF的一个算子(operation),每个算子会有输入与输出,并且输入和输出都是张量。

a = tf.constant(5) b = tf.constant(3) c = tf.multiply(a, b) d = tf.add(a, b)
e = tf.add(c, d)
4、定义一个模型:准备数据——>输入——>定义网络——>输出——>定义损失函数——>定义优化器——>定义精度——>启动TF训练——>模型保存和日志:
(1)保存:
sess = tf.Session()
saver = tf.train.Saver()
saver.save(sess, 'my-model', global_step=step,write_meta_graph=False)
(2)加载:
sess = tf.Session()
saver.restore(sess, ‘my-model')
(3)日志:
生成计算图:writer = tf.summary.FileWriter('./log', sess.graph)
生成张量图:
tf.summary.scalar('loss', loss)
merge_op = tf.summary.merge_all()
merge_sum = sess.run([merge_op ], {tf_x: x, tf_y: y})
writer.add_summary(merge_sum, step)
4、模型组成http://playground.tensorflow.org/
模型 输入:数据——>隐藏层:1-n——>输出:y——>损失函数
训练参数 Epoch——>Learning rate——>Activation——>Batch size
5、几个概念:
①常用优化器(demo_gradient.py)
GradientDescentOptimizer
MomentumOptimizer
RMSPropOptimizer
AdamOptimizer(一般用这个)
②Dropout
③批量规范化
- 正则化(L1,L2),L2也叫Weight_decay
⑤数据增强
- 卷积神经网络
卷积:卷积核大小——>步长——>滤波器(卷积核)个数——>padding
池化:最大、最小、平均
pool_size——>步长——>padding
全连接
参照学习:https://morvanzhou.github.io/tutorials/machine-learning/tensorflow/
Tensorflow入门学习笔记汇总的更多相关文章
- 【笔记目录2】【jessetalk 】ASP.NET Core快速入门_学习笔记汇总
当前标签: ASP.NET Core快速入门 共2页: 上一页 1 2 任务27:Middleware管道介绍 GASA 2019-02-12 20:07 阅读:15 评论:0 任务26:dotne ...
- Hadoop入门学习笔记---part4
紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...
- Hadoop入门学习笔记---part3
2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...
- PyQt4入门学习笔记(三)
# PyQt4入门学习笔记(三) PyQt4内的布局 布局方式是我们控制我们的GUI页面内各个控件的排放位置的.我们可以通过两种基本方式来控制: 1.绝对位置 2.layout类 绝对位置 这种方式要 ...
- PyQt4入门学习笔记(一)
PyQt4入门学习笔记(一) 一直没有找到什么好的pyqt4的教程,偶然在google上搜到一篇不错的入门文档,翻译过来,留以后再复习. 原始链接如下: http://zetcode.com/gui/ ...
- Hadoop入门学习笔记---part2
在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...
- Hadoop入门学习笔记---part1
随着毕业设计的进行,大学四年正式进入尾声.任你玩四年的大学的最后一次作业最后在激烈的选题中尘埃落定.无论选择了怎样的选题,无论最后的结果是怎样的,对于大学里面的这最后一份作业,也希望自己能够尽心尽力, ...
- Scala入门学习笔记三--数组使用
前言 本篇主要讲Scala的Array.BufferArray.List,更多教程请参考:Scala教程 本篇知识点概括 若长度固定则使用Array,若长度可能有 变化则使用ArrayBuffer 提 ...
- NGUI学习笔记汇总
NGUI学习笔记汇总,适用于NGUI2.x,NGUI3.x 一.NGUI的直接用法 1. Attach a Collider:表示为NGUI的某些物体添加碰撞器,如果界面是用NGUI做的,只能这样添加 ...
随机推荐
- 2020本科校招-从小白到拿到30k offer的学习经历
本文是个人的2020年年中总结 还有十几天就要毕业,面临着身份从学生到互联网社畜的转变,未来的一切捉摸不定,但凡心中万千情绪,也只能「但行好事,莫问前程」. 介绍下博主背景:计算机本科大四,刚进大三时 ...
- 记一次使用windbg排查内存泄漏的过程
一.背景 近期有一个项目在运行当中出现一些问题,程序顺利启动,但是观察一阵子后发现内存使用总量在很缓慢地升高, 虽然偶尔还会往下降一些,但是总体还是不断上升:内存运行6个小时候从33M上升到80M: ...
- HTTP 冷知识 | HTTP 请求中,空格应该被编码为 %20 还是 + ?
HTTP 请求中,空格应该被编码为什么?今天我们走进 RFC 文档和 W3C 文档,了解一下这个「史诗级」大坑. 1.%20 还是 + ? 开始讲解前先看个小测试,在浏览器里输入 blank test ...
- 从0开始探究vue-公共变量的管理
背景 在Vue项目中,我们总会遇到一些公共数据的处理,如方法拦截,全局变量等,本文旨在解决这些问题 解决方案 事件总线 所谓事件总线,就是在当前的Vue实例之外,再创建一个Vue实例来专门进行变量传递 ...
- eclipse中的Invalid text string (xxx).
这个是说明在eclipse中引用HTML的时候,语法出现了不规范的错误 可以到https://www.w3school.com.cn/index.html里面找找对应对象的问题 我之前就是option ...
- SQL Server实现 LeetCode 177 第N高的薪水
177. 第N高的薪水 编写一个 SQL 查询,获取 Employee 表中第 n 高的薪水(Salary). +----+--------+ | Id | Salary | +----+------ ...
- Pipeline 脚本调用 mvn 命令失败
问题描述 jenkins构建job时 提示mvn 未找到命令 + export JAVA_HOME=/home/tools/jdk1.8.0_221 + JAVA_HOME=/home/tools/j ...
- Myeclipse 2014 破解补丁以及Y2课件迅雷下载
一. 在破解myeclipse2014之前,要先把环境变量配置好: 1)打开我的电脑--属性--高级--环境变量2)新建系统变量JAVA_HOME 和CLASSPATH 变量名:JAVA_HOME 变 ...
- chrome浏览器版本与驱动不匹配问题的解决办法
1.浏览器与驱动如何匹配才不会报错 使用selenium模块的webdriver打开谷歌浏览器时常遇到这样的错误提示: selenium.common.exceptions.WebDriverExce ...
- POJ - 2184 Cow Exhibition 题解
题目大意 有 \(N(N \le 100)\) 头奶牛,没有头奶牛有两个属性 \(s_i\) 和 \(f_i\),两个范围均为 \([-1000, 1000]\). 从中挑选若干头牛,\(TS = \ ...