一、前言
3、什么是转置卷积?
本文假设读者已经了解GAN及CNN的基本原理实现,如不清楚可参考以下文章:
二、实战
1、训练数据处理
(1)数据源:百度云盘 提取码:g5qa
(2)创建一个生成器
class Avatar:
def __init__(self):
self.data_name = 'faces'
self.source_shape = (96, 96, 3)
self.resize_shape = (48, 48, 3)
self.crop = True
self.img_shape = self.source_shape if not self.crop else self.resize_shape
self.img_list = self._get_img_list()
self.batch_size = 64
self.batch_shape = (self.batch_size, ) + self.img_shape
self.chunk_size = len(self.img_list) // self.batch_size
def _get_img_list(self):
path = os.path.join(os.getcwd(), self.data_name, '*.jpg')
return glob(path)
def _get_img(self, name):
assert name in self.img_list
img = scipy.misc.imread(name).astype(np.float32)
assert img.shape == self.source_shape
return self._resize(img) if self.crop else img
def _resize(self, img):
h, w = img.shape[:2]