轻松上手TensorFlow
文章平均质量分 93
通过一个个简单的例子,带你由浅入深上手Tensorflow和深度学习。
其他过于简单的demo就不费口舌了,收录于https://github.com/huqinwei/tensorflow_demo
秦伟H
目标是略懂:C++,深度学习,三维重建,CV,SLAM,无人机,无人车,多传感器融合,组合导航。有事邮件:qw072117@foxmail.com huqinwei987@gmail.com
展开
-
tensorflow tensorboard使用方法、应用场景和常见问题
详细介绍:基础操作两方面:第一方面:“制作”各种标量、记录节点,图标、图片等的记录汇集,sess.run从计算图得到一次汇集的记录。关于sess.run(merged),可以把这个也当做计算图中得到了一个结果,只是不同用途。既然是计算图,就少不了要feed数据,feed的数据不同,得到的结果也就不同,如果使用了错误的feed数据,很可能得到的绘制结果也不符合预期,下边...原创 2019-03-09 19:51:01 · 4937 阅读 · 0 评论 -
TensorFlow中EMA的概念和正确使用方法
目录EMA介绍概念弥补不足:初始数据积累不足的情况深度学习训练中的作用实现典型步骤一个EMA影子变量的例子进一步接近真实情景,让w1变动例2:global_step的trainable设置最后,怎么用影子变量来测试?模拟训练与存储模型错误的模型读取方式正确的模型读取方式补一发手写的映射通用写法EMA介绍概念滑动平均exponent...原创 2019-03-06 17:05:53 · 6678 阅读 · 10 评论 -
tensorflow生成随机数据
基础接口:用来生成随机数,可以指定均值和方差。相比简单拿来用,调一下参数,生成数据并生成图形观察对比一下, 对于直观理解数据和神经网络训练还是有帮助的。对比tf.random_normal,数据限制了范围,离群点更少,常用于神经网络参数初始化或者生成一些训练数据。weights一般要接近0但是不是0,比较方便train,所以用truncated可能优于普通random...原创 2019-02-23 19:37:15 · 1234 阅读 · 0 评论 -
李宏毅 机器学习 作业 2 Hungyi.Li Machine Learning HW2 逻辑回归法实现以及优化
关于“一个属性有几个固定选项,怎么表达”的问题,数据采用one-hot,每个选项独立成一个属性,loss用交叉熵计算,这样更科学。这里不用过多操心,数据给出已经处理好了。有一段可能是助教给的参考代码,不过参考代码有些漏洞(在代码下方贴出),需要修改下,然后还有一定的调参提升空间。参考代码如下:import os, sysimport numpy as npfr...原创 2018-08-08 17:44:40 · 4340 阅读 · 14 评论 -
李宏毅 机器学习 作业1 Hungyi.Li Machine Learning HW1 PM2.5 Prediction
HomeWork1 PM2.5 Prediction课程资料:https://ntumlta.github.io/2017fall-ml-hw1/从印象笔记移过来修改的,没编辑太细,猎豹编辑CSDN出现各种错误,太麻烦,反正代码能跑。做题思路:数据处理id_x是时间点,每一个具体的x,是一个时间点。怎么抽取训练集?1-9训练,第十个验证,2-10训练,第11个验证...原创 2018-08-05 15:51:56 · 9631 阅读 · 16 评论 -
用神经网络生成fizzbuzz序列
没错,就是你听过的那个fizzbuzz,3整除fizz,5整除buzz,同时整除fizzbuzz,现在用神经网络来生成。大体思路:将自然数字序列作为训练数据,使用二进制形式:虽然数据用二进制,也是0和1组成的,但是不是one-hot,one-hot是每一个特征或者标签分类都是独立的情况。而二进制,显然,1023和1022共享了一堆“1”,只有最后一位不同。因为fizzbuzz有规律,数字之...原创 2019-02-18 00:29:57 · 1311 阅读 · 0 评论 -
tensorflow使用多层RNN(lstm)预测手写数字实现部分细节及踩坑总结
输入格式:batch_size*784改成batch_size*28*28,把784个像素改成了28个行的序列,每一行的内容是一行像素的28个像素灰度数值。让神经网络逐行扫描一个手写字体图案,总结各行特征,通过时间序列串联起来,最终得出结论。网络定义:单独定义一个获取单元的函数,便于在MultiRNNCell中调用,创建多层LSTM网络def get_a_cell(i): l...原创 2018-10-19 00:06:02 · 2118 阅读 · 0 评论 -
Gradient Descent、Momentum、Nesterov的实现及直觉对比
GradientDescent、Momentum(动量)、Nesterov(牛顿动量)的直觉含义对比:Gradient Descentdef gd(x_start, step, g):#gradient descent x = np.array(x_start, dtype='float64') # print(x) passing_dot = [x....原创 2018-10-22 02:18:45 · 1483 阅读 · 0 评论 -
tensorflow实现分类问题classification
数据与预测目标:x是在2和-2附近的正态分布,y是0和1,y=0代表x更接近2,也就是x是正数,y=1代表x是负数。 import tensorflow as tfimport numpy as npimport matplotlib.pyplot as plttf.set_random_seed(2)np.random.seed(2)###############...原创 2018-09-21 14:10:23 · 1518 阅读 · 0 评论 -
tensorflow中实现自动、手动梯度下降:GradientDescent、Momentum、Adagrad
tensorflow中提供了自动训练机制(见nsorflow optimizer minimize 自动训练和var_list训练限制),本文主要展现不同的自动梯度下降并附加手动实现。learning rate、step、计算公式如下:在预测中,x是关于y的变量,但是在train中,w是L的变量,x是不可能变化的。所以,知道为什么weights叫Variable了吧(强行瞎解释一发)...原创 2018-09-29 16:58:26 · 4230 阅读 · 0 评论 -
tensorflow中tf.strided_slice用法
一个工程中用到,乍一看很简单,给了下标直接就能从队列中切出数据来,但是扫一眼help给的高级用法反而有点懵,所以写了个demo。demo1:正常单轴用法,只要给出下标就能切数据import tensorflow as tfsess = tf.Session()#easy demot = tf.constant([1,2,3,4,5,6,7,8])t1 = tf.stride...原创 2018-10-01 18:46:24 · 1510 阅读 · 0 评论 -
tensorflow使用可变学习率进行训练(tf.train.exponential_decay)
tensorflow提供了接口,可以直接可变学习率,在训练过程中动态改变学习率。两种train_op,一种普通的固定学习率训练作为对比train_op,一种是可变学习率train_op2。接口参数:起始学习率;训练步数计数器:用来计算何时改变学习率,之所以不自动提供,而是让你手动传入变量,可能是为了你提取监控方便一些(就如我做的一样);学习率改变步数阈值:就是每过多少步变一次学...原创 2018-10-06 22:34:36 · 5014 阅读 · 0 评论 -
tensorflow使用L2 regularization正则化修正overfitting过拟合
L2正则化原理:过拟合的原理:在loss下降,进行拟合的过程中(斜线),不同的batch数据样本造成红色曲线的波动大,图中低点也就是过拟合,得到的红线点低于真实的黑线,也就是泛化更差。可见,要想减小过拟合,减小这个波动,减少w的数值就能办到。L2正则化训练的原理:在Loss中加入(乘以系数λ的)参数w的平方和,这样训练过程中就会抑制w的值,w的(绝对)值小,模型复杂度低,曲线...原创 2018-10-07 11:46:01 · 8051 阅读 · 3 评论 -
TensorFlow实现多层LSTM识别MNIST手写字,多层LSTM下state和output的关系
其他内容https://blog.csdn.net/huqinweI987/article/details/83155110 输入格式:batch_size*784改成batch_size*28*28,28个序列,内容是一行的28个灰度数值。让神经网络逐行扫描一个手写字体图案,总结各行特征,通过时间序列串联起来,最终得出结论。网络定义:单独定义一个获取单元的函数,便于在Mult...原创 2018-10-18 16:17:53 · 1387 阅读 · 0 评论