第一 基础

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. mybatis 中 foreach collection的三种用法(转)

    文章转自 https://blog.csdn.net/qq_24084925/article/details/53790287 oreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集 ...

  2. Materialized View模式

    Materialized-View模式是在要求数据格式不利于查询操作的情况下,根据多个数据仓库的数据生成预生成的视图的一种模式.这种模式可以帮助支持高效的查询和数据提取,提高应用程序的性能. 问题 在 ...

  3. Java实现一个简单的加密解密方法

    Crypto是Java语言写的一个简单的加密解密方法. 使用方法: 加密方法 String cipherte=Enande.encrypt(content, pass): 解密方法 Enande.de ...

  4. Java过滤掉字符串中的html标签、style标签、script标签

    使用正则表达式 import java.util.regex.Matcher; import java.util.regex.Pattern; public class HTMLSpirit{ pub ...

  5. Item 13: 比起iterator优先使用const_iterator

    本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 STL中的const_iterator等价于pointers-to ...

  6. JAVA里自定义注解来进行数据验证

    API开发中经常会遇到一些对请求数据进行验证的情况,这时候如果使用注解就有两个好处,一是验证逻辑和业务逻辑分离,代码清晰,二是验证逻辑可以轻松复用,只需要在要验证的地方加上注解就可以. Java提供了 ...

  7. Randomized Online PCA Algorithms with Regret Bounds that are Logarithmic in the Dimension

    目录 Setup of Batch PCA and Online PCA Hedge Algorithm 改进算法 用于矩阵 \(rounding()\) 前俩次,都用到了\(rounding()\) ...

  8. 网络编程-TCP/IP

    TCP/IP五层模型讲解(2分) 我们将应用层,表示层,会话层并作应用层,从tcp/ip五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议 就理解了整个互联网通信的原理. 首先,用户感知到的 ...

  9. Linux下安装redis的详细过程(redis版本为4.0.10)

    1.安装redis步骤 1.推荐进入到linux路径/usr/local/src 2.$ wget http://download.redis.io/releases/redis-4.0.10.tar ...

  10. pandas数据清洗策略1

    Pandas常用的数据清洗5大策略如下: 1.删除 DataFrame 中的不必要 columns 2.改变 DataFrame 的 index 3.使用 .str() 方法来清洗 columns 4 ...