手写体数字的识别——数据集的生成
上篇
TensorFlow学习笔记(二)手写体数字的识别——环境安装
关于代码运行平台
博主示范使用的平台是 PyCharm Community 2019.3 x64 ,仅仅出于个人习惯。
读者也可以在 JupterNotebook 等其他平台上使用。
所用库的引入
import random
import os
from PIL import Image, ImageDraw, ImageFont
import numpy as np
random 和 os 是 python 内置的库,不需要引入。
PIL 是一个生成和处理图片的库。
numpy 将图片转化为张量,方便神经网络进行数据分析。
1. 依次打开 :File --> Settings --> Project: practice -->Project Interpreter
2. 按下 右侧的小齿轮,点击 Add…
3. 在 Location 右侧点击📂选择环境安装位置
4. 在Base interpreter 右侧点击浏览(···)选择 Anaconda 安装路径\envs\tensorflow\python3.exe 如图二所示,图一不正确。
可以勾选下面的两个小方框方便以后寻找环境。
5. 点击 OK 完成配置,等待一会,可以看到 PyCharm 列出了所有已经安装的库。
如果没有,点击右侧小眼睛图标显示即可
6. 点击右侧➕,以添加库。
7. 等待一会,出现如下界面,在搜索栏输入你想要的库的名称。
8.选中你需要的库,按 Install Package 下载,等待下载完成。
9. 如果没能下载成功,尝试打开 Terminal,即命令提示符窗口进行手动下载。
注:必须打开正确的环境,即 (tensorflow) C:\Users\用户名\pythonwork>
输入如下代码:
注:如果使用 Anaconda 环境,可以不安装 numpy ,因为我们之前安装 tensorflow 环境时已经默认安装好了相应的 numpy 包,如果没有,就输
入代码手动安装。
pip install PIL
pip install numpy # 选做
10. 使用JupyterNotebook 的朋友们按照第9步的做法在 tensorflow 环境中安装好了需要的库后就可以愉快的在 JupyterNotebook 里运行代码啦!
生成用来存放数字的文件夹
random.seed(3)
path_data ="data_and_distribution" #文件夹路径
# 在目录下生成用来存放数字的文件夹
def mkdir_for_imgs():
if not os.path.exists(path_data):
print(path_data)
os.makedirs(path_data)
删除路径下的图片
在生成新的数据前必须要先删除之前的数据。
# 删除路径下的图片
def del_imgs():
dir_nums = os.listdir(path_data)
for file in dir_nums:
print("delete: ", path_data + "/" + file)
os.remove(path_data + "/" + file)
print("Delete finish", "\n")
生成单张扭曲的数字图像
每行代码的解释都写在了代码注释里。
# 生成单张扭曲的数字图像
def generate_single():
# 先绘制一个50*50的空图像
im_50_blank = Image.new('RGB', (50, 50), (255, 255, 255))
# 创建画笔
draw = ImageDraw.Draw(im_50_blank)
# 生成随机数1-9
num = random.randint(0, 9)
# 设置字体,这里选取字体大小25
font = ImageFont.truetype('simsun.ttc', 20)
# xy是左上角开始的位置坐标
draw.text(xy=