叶开的博客

树叶的叶,开心的开

利用全连接网络将图片进行分类

实例描述 构建一个简单的多层神经网络,以拟合MNIST样本特征完成分类任务。 1. 定义网络参数 在输入和输出之间使用两个隐藏层,每层各256个节点,学习率使用0.001。 import tensorflow as tf # 定义参数 learning_rate = 0.001 trai...

2019-03-25 12:22:25

阅读数 26

评论数 0

使用带隐藏层的神经网络拟合异或操作

多层神经网络是在输入和输出中间多加一些神经元,每一层可以加多个,也可以加很多层。 实例描述 通过构建符合异或规律的数据集来作为模拟样本,构建一个简单的多层神经网络来拟合其样本特征完成分类任务。 1.数据集介绍 所谓的“异或数据”是来源于异或操作。 从a)可以看出,当两个数相同时,输出...

2019-03-22 11:53:11

阅读数 32

评论数 0

用线性逻辑回归处理多分类问题

实例描述 构建网络完成将3类样本分开的任务。 在实现过程中先生成3类样本模拟数据,构建神经网络,通过softmax分类的方法计算神经网络的输出值,并将其分开。 1.生成样本集 这里用generate函数生成了2000个点、3类数据,并且使用one-hot编码。 import tenso...

2019-03-21 11:34:58

阅读数 21

评论数 0

用线性单分逻辑回归分析肿瘤是良性还是恶性的

实例描述 假设某肿瘤医院想用神经网络对已有的病例数据进行分类,数据的样本特征包括病人的年龄和肿瘤的大小,对应的标签为该病例是良性肿瘤还是恶性肿瘤。 1.生成样本集 这里因为没有医院的病例数据,为了方便演示,先用Python生成一些模拟数据来代替样本,它应该是个二维的数组“病人的年纪,肿瘤的大...

2019-03-20 10:44:44

阅读数 40

评论数 0

单个神经元

神经网络是由多个神经元组成,一个神经元由以下几个关键点组成: 激活函数 损失函数 梯度下降 1.神经元的拟合原理 单个神经元的网络模型如下图所示。 其计算公式为 z为输出的结果;x为输入;w为权重;b为偏执值。w和b可以理解为两个变量。 模型每次的学习都是为了调整w和b从而得到了...

2019-03-18 18:41:09

阅读数 572

评论数 0

退化学习率用法实例

使用迭代循环计数变量global_step来标记循环次数,初始学习率为0.1,令其以每10次衰减0.9的速度来进行退化。 定义一个学习率变量,将其衰减系数都设置好,并设置好迭代循环的次数,将每次迭代运算的次数与学习率打印出来,观察学习率按照次数退化的现象。 import tensorflow...

2019-03-18 18:12:10

阅读数 11

评论数 0

softmax算法与损失函数的综合应用

1.交叉熵实验 交叉熵这个比较生僻的术语,在深度学习领域中却是最常见的。由于其常用性,在TensorFlow中被封装成多个版本,有的公式里直接带了交叉熵,有的需要自己单独求出。 import tensorflow as tf labels = [[0, 0, 1], [0, 1, 0]] ...

2019-03-18 16:34:37

阅读数 14

评论数 0

不是码农,也能看懂的“机器学习”原理

什么是机器学习?我们先来说个老生常谈的情景:某天你去买芒果,小贩有满满一车芒果,你一个个选好,拿给小贩称重,然后论斤付钱。自然,你的目标是那些最甜最成熟的芒果,那怎么选呢?你想起来,外婆说过,明黄色的比淡黄色的甜。你就设了条标准:只选明黄色的芒果。于是按颜色挑好、付钱、回家。啊哈,人生完整了?呵呵...

2019-03-13 17:15:12

阅读数 76

评论数 0

识别图中模糊的手写数字

从MNIST数据集中选择一幅画,这幅画上有一个手写的数字,让机器模拟人眼来区分这个手写数字到底是几。 首先来介绍一下编写代码的相关步骤。 导入MNIST数据集。 分析MNIST样本特点定义变量。 构建模型。 训练模型并输出中间状态参数。 测试模型。 保存模型。 读取模型。 ...

2019-03-13 13:48:31

阅读数 10

评论数 0

识别图中模糊的手写数字-读取模型

将模型存储好后,下面来进行一次测试:读取模型并将两张图片放进去让模型预测结果,然后将两张图片极其对应的标签一并显示出来。 在整个代码执行过程中,对网络模型的定义不变,只是重新建立一个session而已,所有的操作都在这个新的session中完成。 print("Starti...

2019-03-13 13:44:21

阅读数 54

评论数 0

识别图中模糊的手写数字-保存模型

首先要建立一个saver和一个路径,然后通过调用save,自动将session中的参数保存起来。 # 保存模型 save_path = saver.save(sess, model_path) print("Model saved in file: %...

2019-03-13 13:02:09

阅读数 36

评论数 0

识别图中模糊的手写数字-测试模型

现在我们使用测试数据来测试一下训练完的模型。 与前面的过程类似,也是先将计算测试的网络结构建立起来,然后通过最终节点的eval将测试值运算出来。 注意:这个过程仍然是在session里进行的。 测试错误率的算法的是:直接判断预测的结果与真实的标签是否相同,如是相同的就表明是正确的,如是不相同...

2019-03-13 12:53:33

阅读数 29

评论数 0

识别图中模糊的手写数字-训练模型并输出中间状态参数

现在开始真正地训练模型了,先定义训练相关的参数。 training_epochs = 25 batch_size = 100 display_step = 1 # 启动session with tf.Session() as sess: # Initializing OP se...

2019-03-13 12:38:07

阅读数 39

评论数 0

识别图中模糊的手写数字-构建模型

样本完成后就可以构建模型。 1.定义学习参数 模型也需要权重值和偏置量,它们统一被叫做学习参数。在TensorFlow里,使用Variable来定义学习参数。 一个Variable代表一个可修改的张量,定义在TensorFlow的图(一个执行任务)中,其本身也是一种变量。使用Variable...

2019-03-13 12:13:45

阅读数 22

评论数 0

识别图中模糊的手写数字-分析图片的特点,定义变量

由于输入图片是个550000×784的矩阵,所以先创建一个[None, 784]的占位符x和一个[None, 10]的占位符y,然后使用feed机制将图片和标签输入进去。 import tensorflow as tf from tensorflow.examples.tutorials.mn...

2019-03-13 11:49:55

阅读数 25

评论数 0

识别图中模糊的手写数字-导入图片数据集

MNIST是一个入门级的计算机视觉数据集。当我们开始学习编程时,第一件事往往是学习打印Hello World。在机器学习入门的领域里,我们会用MNIST数据集来实验各种模型。 1. MNIST数据集介绍 MNIST包含各种手写数字图片。 它也包含每一张图片对应的标签,告诉我们这个数字是几...

2019-03-13 11:40:59

阅读数 95

评论数 0

配置分布式TensorFlow

在大型的数据集上进行神经网络的训练,往往需要更大的运行资源,而且还耗费若干天才能完成运算量。 TensorFlow提供了一个可以分布式部署的模式,将一个训练任务拆成多个小任务,分配到不同的计算机上来完成协同运算,这样使用计算机群运算来代替单机计算,可以使训练时间大大缩短。 分布式TensorF...

2019-03-12 12:17:53

阅读数 6

评论数 0

图的基本操作

这里系统地了解下TensorFlow中图可以做哪些事情。 这里我们使用3种方式来建立图,并依次设置为默认图,使用get_default_graph()方法来获取当前默认图,验证默认图的设置生效。 演示获取图中相关内容的操作。 一个TensorFlow程序默认是建立一个图的,除了系统自动建图以外...

2019-03-11 12:07:02

阅读数 8

评论数 0

共享变量

共享变量在复杂网络中用处非常广泛。 共享变量用途 在构建模型时,需要使用tf.Variable来创建一个变量(节点)。例如: # 创建一个偏执的学习参数,在训练时,这个变量不断地更新 biases = tf.Variable(tf.zero([2]), name="bia...

2019-03-10 16:41:17

阅读数 7

评论数 0

4. 寻找两个有序数组的中位数

给定两个大小为 m 和 n 的有序数组nums1和nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为O(log(m + n))。 你可以假设nums1和nums2不会同时为空。 示例 1: nums1 = [1, 3] nums2 = [2] 则中位数是 2.0 ...

2019-03-07 17:53:36

阅读数 12

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭