付威 付威的网络博客

使用mnist的数据集实现对手写数字识别

感慨下,学了这么久终于有能有点实战的东西了,这篇文章本想写于2019-04-14,可是担心会对学习的进度产生影响,就一直拖后。所以就再今天(2019-04-24)开始去写这篇实战的文章。 目标 写这篇博客的目的就是为了写一个识别手写程序的方案,首先我们准备了mnist(mnist数据集)的数据集,和一张手写的图片 为了测试,增加了一些干扰线: 我们知道,在mnist的数据...

tensorflow的学习笔记--卷积网络

前面说的都是全连接NN的demo,(每个神经元余额前后的相邻的每一个神经元都有链接关系,输入特征,输出为预测结果) 在全连接NN中,一张分辨率为28*28的黑白图像, 有784个数据,如果我们采用了500个样本整个的参数的个数为: 第一层: 784*500+500 第二层: 500*10+10 算下来接近40w个参数,参数过多,容易导致模型过拟合,如果换成高分辨率的彩色图像,问题会...

minst的数据集介绍

MINST数据库是由是一个手写数字的数据集,官方网址:http://yann.lecun.com/exdb/mnist/。 > MNIST 数据集来自美国国家标准与技术研究所, National Institute of Standards and Technology (NIST). 训练集 (training set) 由来自 250 个不同人手写的数字构成, 其中 50% 是...

tensorflow的学习笔记--常用方法和代码片段

今天整理下学习的tensorflow的几个常用的方法和代码片段. tf.get_collection("") 从集合中取出全部变量,生成一个列表 tf.add_n([]) 列表内对应元素相加 tf.cast(x,dtype) 把x转为dtype类型 tf.argmax(x,axis) 返回最大值所在索引号,如 tf...

tensorflow的学习笔记--基础总结

这几天终于把tensorflow的基础学完了,虽然还有点云里雾里,但毕竟入门是一件困难的事情。下面把这几次的写的代码整理出来。 generateds.py文件 import numpy as np import matplotlib.pyplot as plt seed=2 def generateds(): # 基于seed产生随机数 rdm=np.rando...

python实现图片加水印

为了防止博客被爬,本站的所有文章的图片都添加水印。前几天刚刚学习完python,拿来练练手,确实有很多不熟悉的类库和代码,权当试试水了。。 #! /usr/bin/python # coding:utf-8 import os from PIL import Image from PIL import ImageDraw from PIL import ImageFont import r...

tensorflow的学习笔记--正则化

正则化缓解过拟合 有时候发现,模型在训练数据集的准确率非常高,但很难预测新的数据,这样我们称为,模型存在了过拟合的现象。 正则化是缓解过拟合一种有效的方法. 正则化在损失函数中引入模型复杂度指标,利用给W加权值,弱化训练数据的噪声(一般不正则化b) ,具体公式如下: 其中,模型中所有参数的损失函数如:交叉熵,均方误差 。 用超参数REGULARIZER给出参数w在总loss中的...

tensorflow的学习笔记--滑动平均

滑动平均 滑动平均,又叫影子值,记录了每个参数一段时间内过往值的平均,增加了模型的泛化性。 针对所有参数:w和b。(像是给参数加了影子,参数变化,影子缓慢追随),具体的计算公式如下: 影子=衰减率*影子+(1-衰减率)* 参数 影子初值=参数初值 衰减率= 例如: MOVING_AVERAGE_DECAY为0.99,参数w1为0,轮数global_step为0,w1的滑动平均值...

tensorflow的学习笔记--学习率

学习率 学习率(learning_rate)是每次参数更新的幅度。 其中时更新后的参数,当前参数,▽是损失函数的梯度(导数) 例如: 损失函数 梯度 例如:参数w初始化为5,学习率为0.2,则: 1次 参数w:5 5-0.2*(2*5+2)=2.6 2次 参数w:2.6 2.6-0.2*(2*2.6+2)=1.16 ...

tensorflow的学习笔记--损失函数

损失函数 在前面几个博客中说了一个学习模型,具体表现如下: 具体的计算公式: 曾经有人提出另一个神经元模型,多了激活函数和偏执项。 具体的计算公式: 其中f是激活函数,b是偏执项。 损失函数(loss):预测值y’和已知答案y的差距 我们的优化目标就是把loss降低为最小。 激活函数 引入激活函数有效的避免仅使用的线性组合,是模型更准确,更具有表达能力。 常用的激...

tensorflow的学习笔记--反向传播

反向传播 训练模型参数,在所有的参数上用梯度下降,是NN模型在训练数据上的损失函数最小。 损失函数(loss): 预测值(y)与已知答案(y’)的差距 均方误差MSE: 使用tensorflow表示: loss=tf.reduce_mean(tf.square(y'-y)) 反向传播训练方法,以减小loss值为优...

tensorflow的学习笔记--前向传播

输入参数 在上面一篇博客提到的一个简单的模型: 为了能够得到Y,需要准确的知道的值,一般都是先随机给一个值,后面利用样本进行训练,得到准确的值。例如使用随机方法赋初值: w=tf.Variable(tf.random_normal([2,3],stddev=2,mean=0,seed=1)) 其中:random_normal代表随机正态分布,[2,3]产生2x3的矩阵,stdde...

vim配置python环境

配置tab为4个空格和显示行号: vim ~/.vimrc 写入: set ts=4 set nu 保存!

tensorflow的学习笔记--初步认识tensorflow

几个概念 TensorFlow是一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现,由谷歌公司开发并开源免费使用。 在接触到的智能机器中,我们都需要先输入一段抽象的数据(语音,图片等),然后机器识别结果,输出我们想要的内容。 在机器诞生的前期,需要对机器进行训练和学习,使他有能力去认识...

Python的学习笔记--画图

海龟绘图 海龟绘图画图比较简单,主要使用python的turtle模块, 就是通过编程指挥一个小海龟在屏幕上前进和左转右转。 forward: 向前走,可以指定一个距离 left:左转,指定一个角度 right:右转,指定一个角度 circle:画圆 reset:重置 根据上面的说明我们可以简单的绘制一个五角星: import turtle t = turtle.Pen() for ...

java多线程总结

线程和进程 对于进程和线程的概念可以简单的理解成一个包含关系,例如:一个人个体可以称为社会的一个进程,人可以同时做很多事情,这个称之为线程 CPU一次只能执行一个指令,操作系统为了保证同一时刻多个程序同时执行, 把每次执行的指令过程分成若干时间片(timeslice),每一个程序都会在指定的时间片上运行一段时间后,然后保存运行的上下文资源,来保证下次执行。 由于进程对于资源的需求比较多...