eta

官网实例详解4.22(mnist_acgan.py)-keras学习笔记四

匿名 (未验证) 提交于 2019-12-03 00:38:01
Keras实例目录 运行生成文件 效果展示 plot_epoch_073_generated(图片文件) # -*- coding: utf-8 -*- """ Train an Auxiliary Classifier Generative Adversarial Network (ACGAN) on the MNIST dataset. See https://arxiv.org/abs/1610.09585 for more details. 基于MINIST数据集训练辅助分类器ACGAN(生成对抗网络) 详情见:https://arxiv.org/abs/1610.09585 You should start to see reasonable images after ~5 epochs, and good images by ~15 epochs. You should use a GPU, as the convolution-heavy operations are very slow on the CPU. Prefer the TensorFlow backend if you plan on iterating, as the compilation time can be a blocker using Theano. 5周期后,开始看到合理的图像

Keras:在预训练的网络上fine-tune

匿名 (未验证) 提交于 2019-12-03 00:22:01
Keras:自建数据集图像分类的模型训练、保存与恢复 Keras:使用预训练网络的bottleneck特征 fine-tune的三个步骤: 搭建vgg-16并载入权重; 将之前定义的全连接网络加载到模型顶部,并载入权重; 冻结vgg16网络的一部分参数. 在之前的 Keras:自建数据集图像分类的模型训练、保存与恢复 里制作了实验用的数据集并初步进行了训练.然后在 Keras:使用预训练网络的bottleneck特征 中定义并训练了要使用全连接网络,并将网络权重保存到了bottleneck_fc_model.h5文件中. 根据keras中…/keras/applications/vgg16.py的VGG16模型形式,构造VGG16模型的卷积部分,并载入权重(vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5).然后添加预训练好的模型.训练时冻结最后一个卷积块前的卷基层参数. 示例: from keras.models import Sequential from keras import optimizers from keras.preprocessing.image import ImageDataGenerator from keras.layers import Flatten, Dense, Dropout, Conv2D,

步长(学习率learning rate)

匿名 (未验证) 提交于 2019-12-02 23:52:01
版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 ( Creative Commons ) 步长(学习率) 在进行梯度下降法的过程中,我们需要通过调整 η \eta η 学习率的值来调整参数每次要走的距离。适当的调整 η \eta η 可以更准确的找到 L L L 的最小值以及参数值。 下面需要注意调整步长 η \eta η (往下一步要走的距离)的大小: 不同大小的 η \eta η 可能会造成下面图中的情况 一种方法是将参数的变化与函数 L L L 的改变的情况可视化 当 η \eta η 太小,则L变化缓慢,对应下图中绿色线条 当 η \eta η 比较大,则可能上面图中跳出极小值点,找不到该点(相当于步子迈大了从坑上跨过去) 当 η \eta η 过大时,L将会越变越大,需要重新调整(此时相当于不仅跨过了坑还跨到山上去了) 自动调试 η \eta η 的方法 通常情况下,随着参数的更新会越来越小。(越来越接近目标,要调小步长) Adagrad 一般情况: w k + 1 ← w k η k g k , 其 中 g k 表 ʾ 第 k 个 ֵ 的 梯 度 。 w^{k+1} \leftarrow w^{k}-\eta^{k} g^{k},\\其中g^k表示第k个值的梯度。 w k + 1 ← w k η k g k , 其 中 g k

rustup 使用

匿名 (未验证) 提交于 2019-12-02 23:43:01
rustup 可以帮助我们安装不同版本的rust 编程需要的工具连,同时可以方便的进行不同版本 之间的切换,类似nodejs 的 nvm , n , ruby 的 rvm python 的 venv 。。。 我们在首次使用安装脚本,或者安装包安装完成rust 之后就会附带rustup了,对于需要使用不同版本 的流程如下: 选择一个版本,rust 提供了不同的channnel(nightly,stabel,beta. date 格式..) 使用 rustup install 指定版本,或者 rustup toolchain install 指定 rustup default version 进行版本切换 使用 rustup toolchain list 或者 rustup show 检查切换配置 toolchain rustup-toolchain Modify or query the installed toolchains USAGE: rustup toolchain <SUBCOMMAND> FLAGS: -h, --help Prints help information SUBCOMMANDS: list List installed toolchains install Install or update a given toolchain uninstall

【机器学习笔记】自组织映射网络(SOM)

旧街凉风 提交于 2019-12-02 18:44:51
什么是自组织映射? 一个特别有趣的无监督系统是基于 竞争性学习 ,其中输出神经元之间竞争激活,结果是在任意时间只有一个神经元被激活。这个激活的神经元被称为 胜者神经元(winner-takes-all neuron) 。这种竞争可以通过在神经元之间具有 横向抑制连接 (负反馈路径)来实现。其结果是神经元被迫对自身进行重新组合,这样的网络我们称之为 自组织映射(Self Organizing Map,SOM) 。 拓扑映射 神经生物学研究表明,不同的感觉输入(运动,视觉,听觉等)以 有序的方式 映射到大脑皮层的相应区域。 这种映射我们称之为 拓扑映射 ,它具有两个重要特性: 在表示或处理的每个阶段,每一条传入的信息都保存在适当的上下文(相邻节点)中 处理密切相关的信息的神经元之间保持密切,以便它们可以通过短突触连接进行交互 我们的兴趣是建立人工的拓扑映射,以神经生物学激励的方式通过自组织进行学习。 我们将遵循 拓扑映射形成的原则 :“拓扑映射中输出层神经元的空间位置对应于输入空间的特定域或特征”。 建立自组织映射 SOM的主要目标是将任意维度的输入信号模式 转换 为一维或二维离散映射,并以拓扑有序的方式自适应地执行这种变换。 因此,我们通过将神经元放置在一维或二维的网格节点上来建立我们的SOM。更高的尺寸图也是可能的,但不是那么常见。 在竞争性学习过程中,神经元 有选择性地微调

Keras自然语言处理(十八)

不想你离开。 提交于 2019-12-02 11:14:23
第十五章 开发字符级神经语言模型 语言模型可以根据序列中前面的特定单词预测序列中的下一个单词。你可以使用神经网络开发字符级的语言模型,基于字符的语言模型的好处在于处理任何单词,标点和其他文档结构时仅需要很小的词汇量,而且更加灵活,但这是以较大模型和训练缓慢为代价的,然而在神经语言模型领域,基于字符的模型为语言建模提供通用灵活和强大的方法,尽管参数大和训练缓慢,但是在其强大的泛华能力面前,这些缺点也是可以忍受的,接下来你将了解如何开发字符级的神经网路模型: 准备文本 使用开发LSTM训练模型 使用训练好的模型来生成文本 15.1 概述 本教程分为以下几个部分: 唱一首歌 准备数据 训练模型 生成文本 15.2 唱一首歌 我们选用Sing a song of sixpence 来开发字符级语言模型 Sing a song of sixpence , A pocket full of rye ; Four and twenty blackbirds , Baked in a pie . When the pie was opened , The birds began to sing ; Was not that a dainty dish , To set before the king ? The king was in his counting - house , Counting

支持向量机(Support Vector Machine / SVM)手写数字识别

妖精的绣舞 提交于 2019-12-02 03:51:13
手写数字识别的优化(有核函数) 训练算法:采用两种不同的核函数,并对径向基核函数采用不同的设置来运行SMO算法 测试算法:便携一个函数来测试不同的和函数并计算错误率 from numpy import * from time import sleep def loadDataSet(fileName): dataMat = []; labelMat = [] fr = open(fileName) for line in fr.readlines(): lineArr = line.strip().split('\t') dataMat.append([float(lineArr[0]), float(lineArr[1])]) labelMat.append(float(lineArr[2])) return dataMat,labelMat def selectJrand(i,m): j=i #we want to select any J not equal to i while (j==i): j = int(random.uniform(0,m)) return j def clipAlpha(aj,H,L): if aj > H: aj = H if L > aj: aj = L return aj def smoSimple(dataMatIn,

机器学习_数学基础

独自空忆成欢 提交于 2019-12-01 07:58:54
目录 数学基础知识 高等数学 线性代数 概率论和数理统计 数学基础知识 数据科学需要一定的数学基础,但仅仅做应用的话,如果时间不多,不用学太深,了解基本公式即可,遇到问题再查吧。 以下是以前考研考博时候的数学笔记,难度应该在本科3年级左右。 高等数学 1.导数定义: 导数和微分的概念 $f'({{x} {0}})=\underset{\Delta x\to 0}{\mathop{\lim }},\frac{f({{x} {0}}+\Delta x)-f({{x}_{0}})}{\Delta x}$ (1) 或者: $f'({{x} {0}})=\underset{x\to {{x} {0}}}{\mathop{\lim }},\frac{f(x)-f({{x} {0}})}{x-{{x} {0}}}$ (2) 2.左右导数导数的几何意义和物理意义 函数$f(x)$在$x_0$处的左、右导数分别定义为: 左导数:${{{f}'} {-}}({{x} {0}})=\underset{\Delta x\to {{0}^{-}}}{\mathop{\lim }},\frac{f({{x} {0}}+\Delta x)-f({{x} {0}})}{\Delta x}=\underset{x\to x_{0}^{-}}{\mathop{\lim }},\frac{f(x)-f({{x} {0}

感知机

天涯浪子 提交于 2019-11-30 22:31:24
感知机 1、感知机的原理 感知机是二分类的线性模型,其输入是实例的特征向量,输出的是事例的类别,分别是+1和-1,属于判别模型。 假设训练数据集是线性可分的,感知机学习的目标是求得一个能够将训练数据集 正实例点和负实例点完全正确分开的分离超平面 。如果是非线性可分的数据,则最后无法获得超平面 1.1超平面的概念 超平面是在空间 R d Rd中的一个子空间 R d − 1 Rd−1。 在2维空间中的超平面是一条线,在3维空间中的超平面是一个平面。 2、感知机的几个公式 2.1求直线到点的距离公式 直线的公式为Ax+By+C=0,设点为D(x1,y1); d =(Ax1+By1+C)/(A*A+B*B)^1/2 2.2求样本到超平面的距离 超平面为h=w*x+b,其中的w=(w0,w1,w2....wn),x=(x0,x1,x2,x3....xn),样本点x‘到超平面的距离公式为d=(w*x'+b)/||w|| 3、感知机的模型 感知机从输入空间到输出空间的模型如下: f ( x ) = s i g n ( w ⋅ x + b ) f(x)=sign(w⋅x+b) − 1 x < 0 s i g n ( x ) = 1 x ≥ 0 3.1感知机的损失函数 损失函数的优化目标, 就是期望使误分类的所有样本,到超平面的距离之和最小 。 L ( w , b ) = − 1 | | w | |

动手学深度学习(MXNet)4:优化算法

你。 提交于 2019-11-29 06:30:16
优化算法通常只考虑最小化目标函数。其实,任何最大化问题都可以很容易地转化为最小化问题,只需令目标函数的相反数为新的目标函数即可。 由于优化算法的目标函数通常是一个基于训练数据集的损失函数,优化的目标在于降低训练误差。而深度学习的目标在于降低泛化误差。为了降低泛化误差,除了使用优化算法降低训练误差以外,还需要注意应对过拟合。 深度学习中绝大多数目标函数都很复杂。因此,很多优化问题并不存在解析解,而需要使用基于数值方法的优化算法找到近似解,即数值解。本书中讨论的优化算法都是这类基于数值方法的算法。为了求得最小化目标函数的数值解,我们将通过优化算法有限次迭代模型参数来尽可能降低损失函数的值。 两个挑战 ,即局部最小值和鞍点。 梯度下降和随机梯度下降 def train_2d(trainer): # 本函数将保存在d2lzh包中方便以后使用 x1, x2, s1, s2 = -5, -2, 0, 0 # s1和s2是自变量状态,本章后续几节会使用 results = [(x1, x2)] for i in range(20): x1, x2, s1, s2 = trainer(x1, x2, s1, s2) results.append((x1, x2)) print('epoch %d, x1 %f, x2 %f' % (i + 1, x1, x2)) return results