一、环境准备

1、安装python:下载地址https://www.python.org/downloads/windows/下载并安装(推荐python3)

2、安装对应python版本的库:https://www.lfd.uci.edu/~gohlke/pythonlibs/

(1)Numpy库:

(2)Tensorflow库:

  1. 测试安装:

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入门学习笔记汇总的更多相关文章

  1. 【笔记目录2】【jessetalk 】ASP.NET Core快速入门_学习笔记汇总

    当前标签: ASP.NET Core快速入门 共2页: 上一页 1 2  任务27:Middleware管道介绍 GASA 2019-02-12 20:07 阅读:15 评论:0 任务26:dotne ...

  2. Hadoop入门学习笔记---part4

    紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...

  3. Hadoop入门学习笔记---part3

    2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...

  4. PyQt4入门学习笔记(三)

    # PyQt4入门学习笔记(三) PyQt4内的布局 布局方式是我们控制我们的GUI页面内各个控件的排放位置的.我们可以通过两种基本方式来控制: 1.绝对位置 2.layout类 绝对位置 这种方式要 ...

  5. PyQt4入门学习笔记(一)

    PyQt4入门学习笔记(一) 一直没有找到什么好的pyqt4的教程,偶然在google上搜到一篇不错的入门文档,翻译过来,留以后再复习. 原始链接如下: http://zetcode.com/gui/ ...

  6. Hadoop入门学习笔记---part2

    在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...

  7. Hadoop入门学习笔记---part1

    随着毕业设计的进行,大学四年正式进入尾声.任你玩四年的大学的最后一次作业最后在激烈的选题中尘埃落定.无论选择了怎样的选题,无论最后的结果是怎样的,对于大学里面的这最后一份作业,也希望自己能够尽心尽力, ...

  8. Scala入门学习笔记三--数组使用

    前言 本篇主要讲Scala的Array.BufferArray.List,更多教程请参考:Scala教程 本篇知识点概括 若长度固定则使用Array,若长度可能有 变化则使用ArrayBuffer 提 ...

  9. NGUI学习笔记汇总

    NGUI学习笔记汇总,适用于NGUI2.x,NGUI3.x 一.NGUI的直接用法 1. Attach a Collider:表示为NGUI的某些物体添加碰撞器,如果界面是用NGUI做的,只能这样添加 ...

随机推荐

  1. Rocket - diplomacy - 模块结构信息

    https://mp.weixin.qq.com/s/cTRxXwWNEeb4-XX_t4bRcg   讨论模块结构信息的来源及使用方式.     ​​   1. diplomacy   diplom ...

  2. 深入理解JVM(③)——之HotSpot虚拟机对象探秘

    前言 上篇文章介绍了Java虚拟机的运行时数据区域,大致明白了Java虚拟机内存模型的概况,下面就基于实用优先的原则,以最常用的虚拟机HotSpot和最常用的内存区域Java堆为例,升入探讨一下Hot ...

  3. 面试问题---JAVA程序CPU占用过高怎么定位

    今天一个电话面试问了这个问题.回来查了下答案,自己也顺带操作一遍,做个记录.之前知道jstack工具可以查看线状态这些.比如死锁这些,主要是之前不知道top -H -p pid这个命令的使用,这命令可 ...

  4. Java实现 LeetCode 475 供暖器

    475. 供暖器 冬季已经来临. 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖. 现在,给出位于一条水平线上的房屋和供暖器的位置,找到可以覆盖所有房屋的最小加热半径. 所以,你的输入将会是房 ...

  5. Java实现 LeetCode 447 回旋镖的数量

    447. 回旋镖的数量 给定平面上 n 对不同的点,"回旋镖" 是由点表示的元组 (i, j, k) ,其中 i 和 j 之间的距离和 i 和 k 之间的距离相等(需要考虑元组的顺 ...

  6. Java实现 洛谷 P1046 陶陶摘苹果

    import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = ...

  7. java实现第四届蓝桥杯阶乘位数

    阶乘位数 题目描述 如图p1.jpg所示,3 x 3 的格子中填写了一些整数. 我们沿着图中的红色线剪开,得到两个部分,每个部分的数字和都是60. 本题的要求就是请你编程判定:对给定的m x n 的格 ...

  8. mac下使用VMVARE安装win10虚拟机的一些坑

    最近Mac上安装windows踩到了几个坑: 坑一:启动虚拟机后,提示找不到CD-ROM中找不到对应的ISO文件 硬盘格式请选择 在虚拟机->设置中选择启动磁盘为CD_ROM,然后重新启动. 坑 ...

  9. Elasticsearch 别管原理,先run起来

    少点代码,多点头发 本文已经收录至我的GitHub,欢迎大家踊跃star 和 issues. https://github.com/midou-tech/articles 看文章有两点需要注意: 本公 ...

  10. 国外程序员整理的Java资源大全(全部是干货)

    原文 译者 唐尤华 翻译自 github akullpp 这里搜集了用来构建应用程序的工具. Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建.Ma ...