自定义数据集
做深度学习项目时,我们一般都不用网上公开的数据集,而是用自己制作的数据集。那么,怎么用Tensorflow2.0来制作自己的数据集并把数据喂给神经网络呢?且看这篇文章慢慢道来。
Pokemon Datasets
这篇文章我们用的datasets是Pokemon datasets,也就是皮卡丘电影中的一些角色,如下图所示:
![36c0b1a76f853051fdadb36bc63fcd8a.png](https://i-blog.csdnimg.cn/blog_migrate/6d85269d491b645ed5ea9aa27fb69eed.jpeg)
数据集下载
链接: https://pan.baidu.com/s/1V_ZJ7ufjUUFZwD2NHSNMFw
提取码:dsxl
数据集划分
![9de2a0106af333d4468d279e934a70e2.png](https://i-blog.csdnimg.cn/blog_migrate/11c48416187668a149e14c4f1ef3b7a4.jpeg)
由上图可知,60%的数据集用来train
,20%的数据集用来validation
,同样20%用来test
。
四个步骤
- Load data:加载数据
- Build model:建立模型
- Train-Val-Test:训练和测试
- Transfer Learning:迁移模型
加载数据
![d9f8ef0825621ee561ec6b12ca393ad5.png](https://i-blog.csdnimg.cn/blog_migrate/bccbe4a83815db0e39e276ca8cc9fb80.jpeg)
首先对数据进行预处理,把像素值的Numpy类型转换为Tensor类型,并归一化到[0~1]。把数据集的标签做one-hot
编码。
def preprocess(x,y):
# x: 图片的路径,y:图片的数字编码
x = tf.io.read_file(x)
x = tf.image.decode_jpeg(x, channels=3) # RGBA
x = tf.image.resize(x, [244, 244])
return x,