参考博客:https://zhuanlan.zhihu.com/p/27853521 该代码默认是梯度下降法,可自行从注释中选择其他训练方法 在异或问题上,由于训练的样本数较少,神经网络简单,训练结果最好的是GD梯度下降法. # -*- coding:utf-8 -*- # 将tensorflow 引入并命名tf import tensorflow as tf # 矩阵操作库numpy,命名为np import numpy as np ''' 生成数据 用python使用tensorflow时,…
优化算法 1 GD/SGD/mini-batch GD GD:Gradient Descent,就是传统意义上的梯度下降,也叫batch GD. SGD:随机梯度下降.一次只随机选择一个样本进行训练和梯度更新. mini-batch GD:小批量梯度下降.GD训练的每次迭代一定是向着最优方向前进,但SGD和mini-batch GD不一定,可能会"震荡".把所有样本一次放进网络,占用太多内存,甚至内存容纳不下如此大的数据量,因此可以分批次训练.可见,SGD是mini-batch GD的…
转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎star,有问题可以到Issue区讨论 官方教程地址 视频/字幕下载 全连接神经网络 辅助阅读:TensorFlow中文社区教程 - 英文官方教程 代码见:full_connect.py Linear Model 加载lesson 1中的数据集 将Data降维成一维,将label映射为one-hot encoding def reformat(dataset, labe…
TensorFlow实现与优化深度神经网络 转载请注明作者:梦里风林Github工程地址:https://github.com/ahangchen/GDLnotes欢迎star,有问题可以到Issue区讨论官方教程地址视频/字幕下载 全连接神经网络 辅助阅读:TensorFlow中文社区教程 - 英文官方教程 代码见:full_connect.py Linear Model 加载lesson 1中的数据集 将Data降维成一维,将label映射为one-hot encoding def refo…
Convolutional Networks 转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎star,有问题可以到Issue区讨论 官方教程地址 视频/字幕下载 deep dive into images and convolutional models Convnet BackGround 人眼在识别图像时,往往从局部到全局 局部与局部之间联系往往不太紧密 我们不需要神经网络中的每个结点都掌握全局的知识,因此可以…
------------------------------------ 写在开头:此文参照莫烦python教程(墙裂推荐!!!) ------------------------------------ TensorFlow之建造第一个神经网络 1 定义添加层 import tensorflow as tf def add_layer(inputs,in_size,out_size,activation_function=None): Weights = tf.Variable(tf.rand…
使用TensorFlow v2.0构建卷积神经网络. 这个例子使用低级方法来更好地理解构建卷积神经网络和训练过程背后的所有机制. CNN 概述 MNIST 数据集概述 此示例使用手写数字的MNIST数据集.该数据集包含60,000个用于训练的示例和10,000个用于测试的示例.这些数字已经过尺寸标准化并位于图像中心,图像是固定大小(28x28像素),值为0到255. 在此示例中,每个图像将转换为float32并归一化为[0,1]. 更多信息请查看链接: http://yann.lecun.com…
GD参考: https://blog.csdn.net/CharlieLincy/article/details/70767791 SGD参考:https://blog.csdn.net/CharlieLincy/article/details/71082147 关于SGD,博主的第二个问题. GD 代码: SGD代码: mini-batch代码: 一直不明白SGD和GD相比优势到底在哪.看代码每次迭代两个算法都要遍历一次数据集.没啥区别. 然而.区别就在同样是一次迭代,遍历一次数据集,SGD更…
今天来讲下之前发的一篇极其简单的搭建网络的博客里的一些细节 (前文传送门) 之前的那个文章中,用Pytorch搭建优化器的代码如下: # 设置优化器 optimzer = torch.optim.SGD(myNet.parameters(), lr=0.05) loss_func = nn.MSELoss() 一.SGD方法 我们要想训练我们的神经网络,就必须要有一种训练方法.就像你要训练你的肌肉,你的健身教练就会给你指定一套训练的计划也可以叫方法,那么SGD就是这样一种训练方法,而训练方法并不…
一文读懂神经网络训练中的Batch Size,Epoch,Iteration 作为在各种神经网络训练时都无法避免的几个名词,本文将全面解析他们的含义和关系. 1. Batch Size 释义:批大小,即单次训练使用的样本数 为什么需要有 Batch_Size :batch size 的正确选择是为了在内存效率和内存容量之间寻找最佳平衡. Batch size调参经验总结: 相对于正常数据集,如果Batch_Size过小,训练数据就会非常难收敛,从而导致underfitting. 增大Batch_…
TensorFlow本身是分布式机器学习框架,所以是基于深度学习的,前一篇TensorFlow简易学习[2]:实现线性回归对只一般算法的举例只是为说明TensorFlow的广泛性.本文将通过示例TensorFlow如何创建.训练一个神经网络. 主要包括以下内容: 神经网络基础 基本激励函数 创建神经网络 神经网络简介 关于神经网络资源很多,这里推荐吴恩达的一个Tutorial. 基本激励函数 关于激励函数的作用,常有解释:不使用激励函数的话,神经网络的每层都只是做线性变换,多层输入叠加后也还是线…
引言:AlphaGo在2017年年初化身Master,在弈城和野狐等平台上横扫中日韩围棋高手,取得60连胜,未尝败绩.AlphaGo背后神秘的推动力就是TensorFlow--Google于2015年11月开源的机器学习及深度学习框架.  TensorFlow在2015年年底一出现就受到了极大的关注,在一个月内获得了GitHub上超过一万颗星的关注,目前在所有的机器学习.深度学习项目中排名第一,甚至在所有的Python项目中也排名第一.本文将带我们简单了解下TensorFlow,并与其他主流深度…
作者:韩信子@ShowMeAI 深度学习实战系列:https://www.showmeai.tech/tutorials/42 TensorFlow 实战系列:https://www.showmeai.tech/tutorials/43 本文地址:https://www.showmeai.tech/article-detail/327 声明:版权所有,转载请联系平台与作者并注明出处 收藏ShowMeAI查看更多精彩内容 股票价格数据是一个时间序列形态的数据,诚然,股市的涨落和各种利好利空消息更相…
本文根据最近学习TensorFlow书籍网络文章的情况,特将一些学习心得做了总结,详情如下.如有不当之处,请各位大拿多多指点,在此谢过. 一.相关性概念 1.卷积神经网络(ConvolutionNeural Network,CNN) 19世纪60年代科学家最早提出感受野(ReceptiveField).当时通过对猫视觉皮层细胞研究,科学家发现每一个视觉神经元只会处理一小块区域的视觉图像,即感受野.20世纪80年代,日本科学家提出神经认知机(Neocognitron)的概念,被视为卷积神经网络最初…
注:在很长一段时间,MNIST数据集都是机器学习界很多分类算法的benchmark.初学深度学习,在这个数据集上训练一个有效的卷积神经网络就相当于学习编程的时候打印出一行“Hello World!”.下面基于与MNIST数据集非常类似的另一个数据集Fashion-MNIST数据集来构建一个卷积神经网络. 0. Fashion-MNIST数据集 MNIST数据集在机器学习算法中被广泛使用,下面这句话能概况其重要性和地位: In fact, MNIST is often the first data…
TensorFlow基础见前博客 上实例: MNIST 数据集介绍 MNIST 是一个手写阿拉伯数字的数据集. 其中包含有 60000 个已经标注了的训练集,还有 10000 个用于测试的测试集. 本次实验的任务就是通过手写数字的图片,识别出具体写的是 0-9 之中的哪个数字.   理论知识回顾 一个两层的深层神经网络结构如下: 上图所示的是一个具有两层隐藏层的深层神经网络 第一个隐藏层有 4 个节点,对应的激活函数为 ReLu 函数 第一个隐藏层有 2 个节点,对应的激活函数也是 Relu 函…
1.标准卷积神经网络 标准的卷积神经网络由输入层.卷积层(convolutional layer).下采样层(downsampling layer).全连接层(fully—connected layer)和输出层构成. 卷积层也称为检测层 下采样层也称为池化层(pooling layer) 2.卷积神经网络的优势: 第一个特点和优势就是:局部感知 在传统神经网络中每个神经元都要与图片上每个像素相连接, 这样的话就会造成权重的数量巨大造成网络难以训练. 而在含有卷积层的神经网络中每个神经元的权重个…
import tensorflow as tf import numpy as np #input就是输入数据,输入矩阵,in_size就是输入矩阵的列数(数据属性数量),out_size输出矩阵列数#activation_function就是激活函数 def add_layer(input,in_size,out_size,activation_function): Weight=tf.Variable(tf.random_normal([in_size,out_size])) biases=…
git: https://github.com/linyi0604/MachineLearning/tree/master/07_tensorflow/ import tensorflow as tf # 利用numpy生成数据模拟数据集 from numpy.random import RandomState # 定义一个训练数据batch的大小 batch_size = 8 # 定义神经网络的参数 w1 = tf.Variable(tf.random_normal([2, 3], stdde…
批标准化(Bactch Normalization,BN)是为了克服神经网络加深导致难以训练而诞生的,随着神经网络深度加深,训练起来就会越来越困难,收敛速度回很慢,常常会导致梯度弥散问题(Vanishing Gradient Problem). 统计机器学习中有一个经典的假设:Source Domain 和 Target Domain的数据分布是一致的.也就是说,训练数据和测试数据是满足相同分布的.这是通过训练数据获得的模型能够在测试集上获得好的效果的一个基本保障. Convariate Shi…
具体的网址在这里: https://github.com/tensorflow/tensorflow/tree/r0.12/tensorflow/models 一个卷积神经网络用于股票分析的例子:  https://github.com/keon/deepstock,      https://github.com/keon/deepstock import argparse import gzip import os import sys import time import numpy im…
因为实训课要用LSTM+attention机制在钢材领域做一个关系抽取.作为仅仅只学过一点深度学习网络的小白在b站上学习了RNN,LSTM的一些理论知识. 但只懂得一些理论知识是无法完成关系抽取的任务的.于是从图书馆借来<tensoflow实战-----深度学习框架>,在此开始记录我的tensorflow神经网络编程! 首先先介绍一下tensorflow的运作机制,对一个具体的计算而言,一般可以分为两个阶段,第一个阶段用来定义计算图中的计算,第二个阶段用来执行计算. 有了这个概念之后,就会发现…
卷积神经网络比神经网络稍微复杂一些,因为其多了一个卷积层(convolutional layer)和池化层(pooling layer). 使用mnist数据集,n个数据,每个数据的像素为28*28*1=784.先让这些数据通过第一个卷积层,在这个卷积上指定一个3*3*1的feature,这个feature的个数设为64.接着经过一个池化层,让这个池化层的窗口为2*2.然后在经过一个卷积层,在这个卷积上指定一个3*3*64的feature,这个featurn的个数设置为128,.接着经过一个池化…
首先说明使用的工具和环境:python3.6.8   tensorflow1.14.0   centos7.0(最好用Ubuntu) 关于环境的搭建只做简单说明,我这边是使用pip搭建了python的虚拟环境(virtualenv),并在虚拟环境中安装tensorflow.详细步骤可以查看tensorflow的官网. 训练数据 训练(train.txt)和测试(test.txt)数据,两个文件的分类相同为100个分类,其中test.txt每个类下有200条测试数据,train.txt每个类下有1…
我一直觉得TensorFlow的深度神经网络代码非常困难且繁琐,对TensorFlow搭建模型也十分困惑,所以我近期阅读了大量的神经网络代码,终于找到了搭建神经网络的规律,各位要是觉得我的文章对你有帮助不妨点一个关注. 我个人把深度学习分为以下步骤:数据处理 --> 模型搭建 --> 构建损失 --> 模型训练 --> 模型评估 我先把代码放出来,然后一点一点来讲 # Author:凌逆战 # -*- encoding:utf-8 -*- # 修改时间:2020年5月31日 imp…
转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎star,有问题可以到Issue区讨论 官方教程地址 视频/字幕下载 加载数据 使用text8作为训练的文本数据集 text8中只包含27种字符:小写的从a到z,以及空格符.如果把它打出来,读起来就像是去掉了所有标点的wikipedia. 直接调用lesson1中maybe_download下载text8.zip 用zipfile读取zip内容为字符串,并拆分成单词li…
import tensorflow as tfimport numpy as np def add_layer(inputs,in_size,out_size,activation_function=None): """initialize the Weights and biases""" Weights=tf.Variable(tf.random_normal([in_size,out_size])) biases=tf.Variable(t…
1.循环神经网络的标准模型 前馈神经网络能够用来建立数据之间的映射关系,但是不能用来分析过去信号的时间依赖关系,而且要求输入样本的长度固定 循环神经网络是一种在前馈神经网络中增加了分亏链接的神经网络,能够产生对过去数据的记忆状态,所以可以用于对序列数据的处理,并建立不同时段数据之间的依赖关系 循环神经网络是一类允许节点连接成有向环的人工神经网络.如下图: 2.循环神经网络与递归神经网络 从广义上说,递归神经网络可以分为结构递归神经网络和时间递归神经网络 从狭义上说,递归神经网络可以通常就是指结构…
循环神经网络(recurrent neural network,RNN)-------------------------重要结构(长短时记忆网络( long short-term memory,LSTM)) 主要介绍循环神经网络在自然语言处理(natural language processing,NLP) 传统的机器学习算法非常依赖人工提取的特征,使得基于传统机器学习的图像识别,语音识别以及自然语言处理等问题存在特征提取的瓶颈.而基于全连接神经网络的方法也存在参数太多,无法利用数据中时间序列…
加载数据集. 这里的keep_prob是dropout的一个参数.dropout是一种随机置零的策略,用来防止模型过拟合. 这里定义两层,上面是卷积层,下面是池化层. 搭建了一层卷积.一层池化.一层卷积.一层池化.之后将输出展平,输入到全连接层里,进行输出,激活函数选用了relu函数. 这是上面神经网络用到的参数. 之后我们构建模型,pred是整个网络的输出. cost设置为交叉熵 \[l(\varphi)=ylog(1-\varphi)+(1-y)log(1-\varphi)\] 优化器设置为…