深度学习入门-第3章-神经网络

前面的待补充

3.6 手写数字识别
3.6.1 MNIST 数据集
本书提供了便利的 Python 脚本 mnist.py ,该脚本支持从下载 MNIST 数据集到将这些数据转换成 NumPy 数组等处理(mnist.py 在 dataset 目录下)。
使用 mnist.py 时,当前目录必须是 ch01 、ch02 、ch03、…、ch08 目录中的一个。使用 mnist.py 中的 load_mnist() 函数,就可以按下述方式轻松读入 MNIST 数据。
实际使用中是报错的,提示urllib.request获取数据失败,检查代码:
from dataset.mnist import load_mnist
使用的是dataset目录下的mnist.py中的load_mnist函数
直接查看mnist.py源码:
 

url_base = 'http://yann.lecun.com/exdb/mnist/'
key_file = {'train_img':'train-images-idx3-ubyte.gz','train_label':'train-labels-idx1-ubyte.gz','test_img':'t10k-images-idx3-ubyte.gz','test_label':'t10k-labels-idx1-ubyte.gz'
}dataset_dir = os.path.dirname(os.path.abspath(__file__))
save_file = dataset_dir + "/mnist.pkl"

上面的代码是把从网站下载的4个文件放到mnist.pkl中保存。下载代码如下:

def _download(file_name):file_path = dataset_dir + "/" + file_nameif os.path.exists(file_path):returnurllib.request.urlretrieve(url_base + file_name, file_path)

直接运行,下载这一步报错了。从浏览器直接下载试试

MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burges

下载被拒绝,网上搜了一下原因,然后就更换为:

GitHub - zalandoresearch/fashion-mnist: A MNIST-like fashion product database. Benchmark

下载OK了,但里面的图明显不是0-9的数字,库不太对,又找了一个:

vision/torchvision/datasets/mnist.py at ddad38f3a84d4d87cbb389bc78e245920fe86f82 · pytorch/vision · GitHub

https://ossci-datasets.s3.amazonaws.com/mnist/

这个库也不太对,里面显示的应该也是各种衬衫、裙子的识别,估计和fashion-mnist是一样的。

最终在github上找到了原始的0-9数字数据集:
https://github.com/geektutu/tensorflow-tutorial-samples/blob/master/mnist/data_set/                        
通过浏览器下载到dataset目录,就可以了。
程序下载经常会失败,原因众所周知,国内访问github总是时灵时不灵,用浏览器也要多刷几次才行(骂一句万恶的墙,啥时候才能拆了接轨世界)。

插曲:如果是内网,python下载需要在程序中设置代理。

    file_path = dataset_dir + "/" + file_nameif os.path.exists(file_path):returnprint("set proxy...")# 设置代理proxies = {'http': 'http://proxy.xxx:80', 'https': 'https://proxy.xxx:80'}proxy_handler = urllib.request.ProxyHandler(proxies)# 创建Openeropener = urllib.request.build_opener(proxy_handler)# 安装Openerurllib.request.install_opener(opener)print("Downloading " + file_name + " ... ")urllib.request.urlretrieve(url_base + file_name, file_path)print("Done")

下载好了dataset就可以mnist_show.py了,提示还有错误:

D:\python\test\ch03>py mnist_show.py
Traceback (most recent call last):
  File "mnist_show.py", line 5, in <module>
    from PIL import Image
ModuleNotFoundError: No module named 'PIL'
PIL 库没有?
py -m pip install Pillow --proxy http://proxy.xxx.cn:80 -i https://pypi.tuna.tsinghua.edu.cn/simple

Installing collected packages: Pillow
Successfully installed Pillow-9.5.0
成功安装Pillow后问题解决。

mnist_show.py代码,加了注释

import sys,os
sys.path.append(os.pardir)  # 为了导入父目录的文件而进行的设定,这里要用dataset目录下的mnist.py文件
import numpy as np
from dataset.mnist import load_mnist  # 导入mnist.py文件中的load_mnist函数
from PIL import Image  # 这个包需要单独安装,py -m pip install Pillow --proxy http://proxy.xxx.cn:80 -i https://pypi.tuna.tsinghua.edu.cn/simple def img_show(img):pil_img = Image.fromarray(np.uint8(img))  # 把保存为 NumPy 数组的图像数据转换为 PIL 用的数据对象pil_img.show()# 第一次加载需要几分钟,load_mnist是从网上下载,如前所述,直接手工下载到dataset目录就行了,不需要执行下载,这样就快了
# load_mnist 函数以“( 训练图像, 训练标签 ),( 测试图像, 测试标签 ) ”的形式返回读入的 MNIST 数据
(x_train, t_train),(x_test, t_test) = load_mnist(flatten=True,  # flatten=True 时读入的图像是以784个元素构成的一维数组的形式保存的。因此,显示图像时,需要把它变为原来的 28像素 × 28 像素的形状。normalize=False) # normalize 设置是否将输入图像正规化为 0.0~1.0 的值。如果将该参数设置为 False ,则输入图像的像素会保持原来的 0~255# 输出各数据的形状
print(x_train.shape)  # (60000, 784)
print(t_train.shape)  # (60000,)
print(x_test.shape)   # (10000, 784)
print(t_test.shape)   # (10000,)img = x_train[0]
label = t_train[0]
print(label)print(img.shape)
img = img.reshape(28,28)  # 通过 reshape() 方法的参数指定期望的形状,更改 NumPy 数组的形状。
print(img.shape)img_show(img)

运行结果和书上是一样的,标签是5,图形也是5,侧面证明和书上的数据集是一套。

D:\python\test\ch03>py mnist_show.py
(60000, 784)
(60000,)
(10000, 784)
(10000,)
5
(784,)
(28, 28)

图形:

其他内容待续:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/339696.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PolygonalSurfaceContourLineInterpolator 多边形交互器

1. 效果&#xff1a; 2.简介&#xff1a; 可以实现在多边形上进行交互&#xff0c;选择&#xff1b;在多边形曲面上实现轮廓点的交互绘制。 该类的使用需要结合 vtkPolygonalSurfacePointPlacer 类&#xff0c;定位点的功能也就是拾取器。 前提&#xff1a;输入的多边形曲面…

python第五次作业

1.请实现一个装饰器&#xff0c;每次调用函数时&#xff0c;将函数名字以及调用此函数的时间点写入文件中 # 导入datetime模块&#xff0c;用于获取当前时间并格式化输出 import datetime# 定义一个装饰器工厂函数log_funcName_time&#xff0c;它接受一个参数time def log_fu…

军用电源性能测试有哪些测试项目?需要遵循什么标准?

为了确保军用电源在极端条件下能够正常工作&#xff0c;必须对其进行一系列严格的性能测试。这些测试不仅包括效率、电压调整率和负载调整率等基本参数的测试&#xff0c;还包括动态响应能力、绝缘电阻、耐压测试、温度系数以及高低温循环等综合性能的评估。 测试项目 效率 电压…

react-native运行程序 出现 Application XXX is waiting for the debugger

1.重启adb: adb kill-server、 adb start-server. 2、确定USB调试模式是否开启&#xff0c;如果已经开启了&#xff0c;关闭了重新打开一下 3.选择调试模式并关闭等待调试程序

MobaXterm两种方式上传下载文件

1.图形化操作 下载 这里的图像化操作有别于windows系统&#xff0c;双击无法打开&#xff0c;直接输入文件路径进行查找。选中下载文件&#xff0c;然后3图标会高亮点击下载图标选择文件下载到的位置 上传 依旧使用上图 &#xff0c; 4. 上传按钮&#xff0c;可以选择文件&a…

【机器学习】逻辑回归:原理、应用与实践

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 逻辑回归&#xff1a;原理、应用与实践引言1. 逻辑回归基础1.1 基本概念1.2 Sig…

Tensorflow入门实战 P02-彩色图片分类

目录 1、序言 2、主要代码 3、运行结果展示 &#xff08;1&#xff09;展示cifar10里面的20张图片 &#xff08;2&#xff09;预测的图片 &#xff08;3&#xff09;模型评估 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K…

Office在试图打开文件时遇到错误

如果是PPT、Excel&#xff0c;解决方法大体一致。 打开word文件&#xff0c;遇到如下图所示的报错信息。 解决办法&#xff1a; 法1&#xff08;针对单一文件&#xff09;&#xff1a; 文件右键-【属性】-勾选【解除锁定(K)】 法2&#xff08;一劳永逸&#xff0c;安全性自…

【Spring Cloud】微服务日志收集系统-ELK+Kafka

目录 任务背景本文相关文件资料Elasticsearch特性 LogstashKibanaELKELK的缺点引入消息中间件 ELKKafkaKafka概念 ELKKafka环境搭建1.将安装素材上传至服务器 cd /usr/local/soft2.防止Elasticsearch因虚拟内存问题启动失败3.创建镜像li/centos7-elasticsearch4.创建容器5.验证…

大模型备案项目补贴政策一览【保持更新】

大模型项目、AI类项目、大模型备案通过后等一篮子财政补贴政策 上海市 加快创新体系构建 1. 提升自主创新水平&#xff1a;对引领大模型发展或取得颠覆性突破的项目&#xff0c;最高给予1000万元补贴支持。 2. 加强算力资源保障&#xff1a;实施算力伙伴计划&#xff0c;对…

学生信息管理系统C++

设计目的 使学生进一步理解和掌握课堂上所学的面向对象C编程知识&#xff0c;巩固和加深学生对C面向对象课程的基本知识的理解和掌握。掌握C面向对象编程和程序调试的基本技能&#xff0c;学会利用C语言进行基本的软件设计&#xff0c;着重提高运用C面向对象语言解决实际问题的…

kali系统baopoWiFi密码

kali系统baopoWiFi密码,仅供学习 取决强大的密码字典,如果别人密码设置的足够安全,也无法破解成功,并不是100%破解 一、准备一个无线网卡&#xff0c;需要免驱动&#xff0c;最好知道频率2.4HGZ还是5.0GHZ 二、插上USB接口&#xff0c;vmware模拟器选择连接虚拟机 三、输入命…

超强算力 Orange Pi Kunpeng Pro 开发板基础测评与体验

目录 开箱体验资源简介系统启动连接网络登录系统通过桌面登录通过串口登录通过 SSH 登录配置散热风扇 算力测试MNIST示例MBNET示例 体验总结 大家好&#xff0c;我是 Hello 阿尔法&#xff0c;有幸接到 CSDN 的邀请参与 Orange Pi Kunpeng Pro 开发板的测评活动&#xff0c;本文…

基于数据驱动的自适应性小波构造(MATLAB)

以地震领域为例&#xff0c;时频变换能够刻画地震资料的时频特征&#xff0c;进而辅助地质构造解释。在各种时频分析工具中&#xff0c;连续小波变换CWT是描述地震资料时频特征的常用工具。选择合适的基小波是CWT的关键问题。对于不同类型的信号前人有针对性的设计了许多基小波…

基于单片机的超声波倒车雷达设计

摘 要&#xff1a;文 章设计了一种基于单片机的超声波倒车雷达系统&#xff0c;以 AT89C51 型单片机作为控制核心&#xff0c;集距离测量、显示&#xff0c;方位显示和危险报警于一体&#xff0c;以提高驾驶者在倒车泊车时的安全性和舒适性。本设计采用 Keil 软件对系统程序…

Linux开发工具(个人使用)

Linux开发工具 1.Linux yum软件包管理器1.1Linux安装程序有三种方式1.2注意事项1.3如何查看&#xff0c;安装&#xff0c;卸载软件包1.3.1查看软件包1.3.2安装软件包1.3.3卸载软件 2.Linux vim编辑器2.1vim的基本操作2.2vim正常模式命令集2.3vim底行模式命令集2.4vim配置 3.Lin…

就凭这张图,下订华为享界S9

文 | Auto芯球 作者 | 雷慢 冲啦&#xff01;就在刚刚&#xff0c; 我们团队下订了一辆享界S9&#xff0c; 还琢磨买奔驰S级&#xff0c;宝马7系和奥迪A8的老板们&#xff0c; 是应该试试享界S9了&#xff0c; 至少先占个坑&#xff0c;8月底S9上市当天&#xff0c; 可以…

微型导轨在自动化制造中有哪些优势?

微型导轨在自动化制造中发挥重要作用&#xff0c;能够满足自动化设备制造中对精度要求较高的工艺环节。适用于自动装配线、自动检测设备和机器人操作等环节&#xff0c;推动了行业的进步与发展。那么&#xff0c;微型导轨在使用中有哪些优势呢&#xff1f; 1、精度高和稳定性强…

FPGA DMA IP核使用指南

摘要 本文旨在介绍FPGA中DMA(Direct Memory Access)IP核的使用,包括其基本框架、测试代码编写以及仿真波形的分析。DMA是一种允许外围设备直接与内存进行数据交换的技术,无需CPU的介入,从而提高了数据传输的效率。 1. 引言 在现代FPGA设计中,DMA IP核因其…

android睡眠分期图

一、效果图 做医疗类项目&#xff0c;经常会遇到做各种图表&#xff0c;本文做的睡眠分期图。 二、代码 引入用到的库 api joda-time:joda-time:2.10.1 调用代码 /*** 睡眠* 分期*/private SleepChartAdapter mAdapter;private SleepChartAttrs mAttrs;private List<SleepI…