第一 基础

1. 定义变量

#定义维度为[2,3], 平均值为·1, 标准差为1,类型为float32,名称为w1的服从正态分布的变量

w1 = tf.Variable(tf.random_normal(2, 3), stddev=1, seed=1, dtype=tf.float32, name='w1')

#定义维度为[2,3],平均值为1,标准差为1,类型为float32,名称为w1的服从正态分布的变量,偏离平均值超过两个标准差则重新生成

w1 = tf.Variable(tf.truncated_normal(2, 3), stddev=1, seed=1, dtype=tf.float32, name='w1')

2.定义常量

#定义值为[[1,2], [4,5]], 类型为float32, 名称为x的常量

x = tf.constant([[1, 2], [4, 5]], dtype=tf.float32, name='x')

3.定义占位符

#定义类型为float32,维度为[None, 2], 名称为x的占位符

x = tf.placeholder(tf.float32, shape=(None, 2), name='x')

4.开启回话

init_op = tf.initialize_all_variables()

with tf.Session() as sess:

  sess.run(init_op)

第二  优化

1.非线性与激活函数

INPUT_NODE = 2

OUTPUT_NODE = 1

LAYER1_NODE = 3

x = tf.placeholder(tf.float32, shape=(None, INPUT_NODE), name='x-input')

_y = tf.placeholder(tf.float32, shape=(None, OUTPUT_NODE), name='y-output')

weight1 = tf.Variable(tf.truncated_normal(INPUT_NODE, LAYER1_NODE), dtype=tf.float32, name='weight1')

biases1 = tf.Variable(tf.constant(0.1, shape=LAYER1_NODE), dtype=tf.float32, name='biases1')

weight2 = tf.Variable(tf.truncated_normal(LAYER1_NODE, OUTPUT_NODE), dtype=tf.float32, name='weight2')

biases2 = tf.Variable(tf.constant(0.1, shape=OUTPUT_NODE), dtype=tf.float32, name='biases2')

layer1 = tf.nn.relu(tf.matmul(x, weight1) + biases1)

y = tf.matmul(layer1, weight2) + biases2

2.交叉熵损失函数

(1)不封装写法

cross_entropy = -tf.reduce_mean(_y * tf.log(tf.clip_by_value(y, 1e-10, 1.0)))

train_step = tf.train.AdamOptimizer(0.001).minimize(cross_entropy)

(2)封装写法

cross_entropy = tf.nn.softmax_cross_entropy_with_logits(y, _y)

train_step = tf.train.AdamOptimizer(0.001).minimize(cross_entropy)

3.均方误差损失函数

mse = tf.reduce_mean(tf.square(_y - y))

train_step = tf.train.AdamOptimizer(0.001).minimize(mse)

4.自定义损失函数

LOSS_MORE = 10

LOSS_LESS = 1

loss = tf.reduce_sum(tf.select(tf.greater(y, _y), (y- _y) * LOSS_MORE, (_y - y) * LOSS_LESS))

train_step = tf.train.AdamOptimizer(0.001).minimize(loss)

5.指数衰减学习率

LEARNING_RATE_BASE = 0.1

LEARNING_RATE_DECAY = 0.99

ALL_SIZE = 10000

BATCH_SIZE = 10

global_step = tf.Variable(0, trainable=False)

learning_rate = tf.train.exponential_decay(LEARNING_RATE_BASE, global_step, ALL_SIZE/BATCH_SIZE, LEARNING_RATE_DECAY)

train_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss, global_step=global_step)

6.过拟合问题与正则化

REGULARIZATION_RATE = 0.0001

regularizer = tf.contrib.layers.l2_regularizer(REGULARIZATION_RATE)

regularization = regularizer(weight1) + regularizer(weight2)

loss = cross_entropy + regularization

7.滑动平均模型

MOVING_AVERAGE_DECAY = 0.99

ema = tf.traim.ExponentialMovingAverage(MOVING_AVERAGE_DECAY, global_step)

ema_op = ema.apply(tf.trainable_variables())

TensorFlow总结的更多相关文章

  1. Tensorflow 官方版教程中文版

    2015年11月9日,Google发布人工智能系统TensorFlow并宣布开源,同日,极客学院组织在线TensorFlow中文文档翻译.一个月后,30章文档全部翻译校对完成,上线并提供电子书下载,该 ...

  2. tensorflow学习笔记二:入门基础

    TensorFlow用张量这种数据结构来表示所有的数据.用一阶张量来表示向量,如:v = [1.2, 2.3, 3.5] ,如二阶张量表示矩阵,如:m = [[1, 2, 3], [4, 5, 6], ...

  3. 用Tensorflow让神经网络自动创造音乐

    #————————————————————————本文禁止转载,禁止用于各类讲座及ppt中,违者必究————————————————————————# 前几天看到一个有意思的分享,大意是讲如何用Ten ...

  4. tensorflow 一些好的blog链接和tensorflow gpu版本安装

    pading :SAME,VALID 区别  http://blog.csdn.net/mao_xiao_feng/article/details/53444333 tensorflow实现的各种算法 ...

  5. tensorflow中的基本概念

    本文是在阅读官方文档后的一些个人理解. 官方文档地址:https://www.tensorflow.org/versions/r0.12/get_started/basic_usage.html#ba ...

  6. kubernetes&tensorflow

    谷歌内部--Borg Google Brain跑在数十万台机器上 谷歌电商商品分类深度学习模型跑在1000+台机器上 谷歌外部--Kubernetes(https://github.com/kuber ...

  7. tensorflow学习

    tensorflow安装时遇到gcc: error trying to exec 'as': execvp: No such file or directory. 截止到2016年11月13号,源码编 ...

  8. 【转】TensorFlow练习20: 使用深度学习破解字符验证码

    验证码是根据随机字符生成一幅图片,然后在图片中加入干扰象素,用户必须手动填入,防止有人利用机器人自动批量注册.灌水.发垃圾广告等等 . 验证码的作用是验证用户是真人还是机器人:设计理念是对人友好,对机 ...

  9. 【转】机器学习教程 十四-利用tensorflow做手写数字识别

    模式识别领域应用机器学习的场景非常多,手写识别就是其中一种,最简单的数字识别是一个多类分类问题,我们借这个多类分类问题来介绍一下google最新开源的tensorflow框架,后面深度学习的内容都会基 ...

  10. 【转】Ubuntu 16.04安装配置TensorFlow GPU版本

    之前摸爬滚打总是各种坑,今天参考这篇文章终于解决了,甚是鸡冻\(≧▽≦)/,电脑不知道怎么的,安装不了16.04,就安装15.10再升级到16.04 requirements: Ubuntu 16.0 ...

随机推荐

  1. oldboy-作业01.登录多次进行账号锁定

    """可以支持多个用户登录 (提示,通过列表存多个账户信息)用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里) &q ...

  2. 多个窗口开启后,切换到指定title的窗口

    1.在google中,可以开启多个窗口,这是需要切换到自己需要的窗口去定位元素.如下: #获取两个窗口的标题 ${titles} Selenium2Library.Get Window Titles ...

  3. Edusoho之LAMP环境搭建

    主要参考官方文档Ubuntu16.04+Apache+PHP+MySQL+EduSoho 安装教程LAMP环境按照如下搭建是没有问题的,本地虚拟机试验是完全没有问题的. 1.更新 sudo apt-g ...

  4. 给大家推荐一个C#下文件监听器和资源管理器的示例Demo-含源码

    C#下文件监听器和资源管理器的示例Demo:源码下载地址

  5. git branch 分支操作

    一.git分支命令 Git鼓励大量使用分支: 查看分支:git branch 创建分支:git branch <name> 切换分支:git checkout <name> 创 ...

  6. CF434D Nanami's Power Plant 最小割

    传送门 因为连距离限制的边的细节调了贼久QAQ 这个题和HNOI2013 切糕性质相同,都是有距离限制的最小割问题 对于每一个函数,用一条链记录变量\(x\)在不同取值下这个函数的贡献.对于一个\(x ...

  7. Ionic1 环境破坏后程序重新恢复过程

    ionic platform remove android ionic platform add android cordova plugin add cordova-plugin-network-i ...

  8. git revert 还有这个坑?

    最近也是终于开启了代码编写之旅,我只能默默地说一句,写代码的感觉,简直不能再爽! 不过也由于 git 的分支管理蛋疼懵逼很久,所以必须记录以及和大家分享一下本次坑爹的旅行. 写在前面 每个公司相比都有 ...

  9. python--__init__()方法和__new__()方法

    这两个方法是python类中的基本方法,经常会在一些面试中问到.即便没有要面试之类的,学习一下其内部的原理和使用也是有必要的. 首先区分一下这两个方法: __init__:初始化方法 __new__: ...

  10. JMX,Jstatd做好JVM应用上线的最后一层保障

    目录 我理解的监控 代码异常监控 远程主机配置jmx 修改要启动的java程序启动参数(JVM_OPTS). 修改文件权限 启动jvisualvm 监控服务器上的java程序 jstatd 连接到远程 ...