手写神经网络解决解决Mnist数字集

Mnist数据集介绍和训练数据准备

使用的是mnist.npz文件作为数据集。npz实际上是numpy提供的数组存储方式,简单的可看做是一系列npy数据的组合,利用np.load函数读取后得到一个类似字典的对象,可以通过关键字进行值查询,关键字对应的值其实就是一个npy数据。扩展名为.npy的文件为np用来保存未压缩的多个数组的文件格式。存取的方法 np.load np.save 。 具体 mnist数据集常见格式(npz、gz等)简介

import numpy as np

def vectorized_result(j):
    """将标签从一个字段表示的(0,1.....9)转换为1个用10维向量表示的值。称为热独编码"""
    e = np.zeros((10, 1))
    e[j] = 1.0
    return e
try:
    data = np.load('mnist.npz')
    print(data.keys())
    x_train, y_train, x_test, y_test = data['x_train'],data['y_train'],data['x_test'],data['y_test']
    print(len(x_train),len(y_train),len(x_test),len(y_test))
    # 可以将其中一条数据保存成txt文件,查看一下,会对这组数据有个直观的感受
    np.savetxt('test.txt',x_train[0],fmt='%3d',newline='\n')
    
    # 将数据归一化
    x_train, x_test = x_train/255.0, x_test/255.0
except Exception as e:
    print('%s' %e)

training_data=[(x.reshape((784,1)),vectorized_result(y)) for x, y in zip(x_train, y_train)]
test_data=[(x.reshape((784,1)),y) for x, y in zip(x_test, y_test)]

简单神经网络的几个重要部分

激励函数:sigmoid

sigmoid激励函数的公式
Sigmoid曲线
Sigmoid的求导

该方法主要用来对向量进行sigmoid激励

def sigmoid(z):
    """The sigmoid function."
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值