2020-12-18

一、MNIST 数字识别

  1. 基础入门:minist数据识别相当于打印hello world。
  2. 深度学习的模型是各种神经网络。
  3. 数据预处理后为给模型训练,并通过测试数据集测试训练结果。
  4. minist数据集有50000张训练图片,10000 张测试图片.每张图片的像素都是 28 * 28。
  5. train-images.idx3-ubyte 包含了 50000 张训练图片.
  6. train-labels.idx1-ubyte 包含了 50000 个标签.
  7. t10k-images.idx3-ubyte 包含了 10000 张训练图片.
  8. t10k-labels.idx1-ubyte 包含了 10000 个标签.
  9. 参考网址:详细介绍
  10. 在这里有一点,非常重要,MNIST 将需要图片或者标签全部写入到一个 bin 文件当中去了,如果要读取某张图片和对应的标签值就需要按照一定的方法从 bin 文件中分割.不过,MNIST 官网有 bin 文件的结果说明,所以根据结构很容易编写代码实现.

bin 文件的结果说明
在这里插入图片描述
在这里插入图片描述
二、训练集、验证集和测试集
三种集合的区别
在训练集(平时学习)上训练模型,在验证集(日常小测验)上评估模型,一旦找到的最佳的参数,就在测试集(期末考试)上最后测试一次,测试集上的误差作为泛化误差的近似。
吴恩达老师的视频中,如果当数据量不是很大的时候(万级别以下)的时候将训练集、验证集以及测试集划分为6:2:2;若是数据很大,可以将训练集、验证集、测试集比例调整为98:1:1;但是当可用的数据很少的情况下也可以使用一些高级的方法,比如留出方,K折交叉验证等。

from tensorflow.examples.tutorials.mnist import input_data
import tensorflow as tf
import matplotlib.pyplot as plt
# MNIST_data 代表当前程序文件所在的目录中,用于存放MNIST数据的文件夹,如果没有则新建,然后下载.
mnist = input_data.read_data_sets("MNIST_data",one_hot=True)

mnist.train.images
mnist.train.labels

mnist.test.images
mnist.test.labels

mnist.validation.images
mnist.validation.labels
'''
print(mnist.train.images.shape)
print(mnist.train.labels.shape)

print(mnist.test.images.shape)
print(mnist.test.labels.shape)

print(mnist.validation.images.shape)
print(mnist.validation.labels.shape)


#可视化
#获取第二张图片
image = mnist.train.images[0,:]
#将图像数据还原成28*28的分辨率
image = image.reshape(28,28)
print(mnist.train.labels[0])
plt.figure(num='adfsfdsfs', figsize=[5,5])
plt.imshow(image)
plt.show()
#打印对应的标签
'''
print(type('454345'))

三、画图
1.
figure语法及操作
figure语法说明

figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)

num:图像编号或名称,数字为编号 ,字符串为名称
figsize:指定figure的宽和高,单位为英寸;
dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80 1英寸等于2.5cm,A4纸是 21*30cm的纸张
facecolor:背景颜色
edgecolor:边框颜色
frameon:是否显示边框
(2)例子:

import matplotlib.pyplot as plt
创建自定义图像
fig=plt.figure(figsize=(4,3),facecolor=‘blue’)
plt.show()
2.
subplot创建单个子图
(1) subplot语法

subplot(nrows,ncols,sharex,sharey,subplot_kw,**fig_kw)
subplot可以规划figure划分为n个子图,但每条subplot命令只会创建一个子图 ,参考下面例子。

(2)例子

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 100)
#作图1
plt.subplot(221)
plt.plot(x, x)
#作图2
plt.subplot(222)
plt.plot(x, -x)
#作图3
plt.subplot(223)
plt.plot(x, x ** 2)
plt.grid(color=‘r’, linestyle=’–’, linewidth=1,alpha=0.3)
#作图4
plt.subplot(224)
plt.plot(x, np.log(x))
plt.show()

3.subplots创建多个子图
(1)subplots语法

subplots参数与subplots相似

(2)例子

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 100)
#划分子图
fig,axes=plt.subplots(2,2)
ax1=axes[0,0]
ax2=axes[0,1]
ax3=axes[1,0]
ax4=axes[1,1]

#作图1
ax1.plot(x, x)
#作图2
ax2.plot(x, -x)
#作图3
ax3.plot(x, x ** 2)
ax3.grid(color=‘r’, linestyle=’–’, linewidth=1,alpha=0.3)
#作图4
ax4.plot(x, np.log(x))
plt.show()

4.面向对象API:add_subplots与add_axes新增子图或区域

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值