在Francois Chollet的书“使用Python进行深度学习”中,他给出了一个简单的VAE模型,最后,他希望生成一些新颖的数字,如下所示:
只需查看代码的单独部分(在中间)。他获取了一个样本(Z_sample),然后重复它!然后将所有内容提供给生成器(解码器),然后他告诉解码器这是一个批处理!!最后,他只接受其中一个输出!稍后将看到x_decoded [0]。
n = 15
digit_size = 28
figure = np.zeros((digit_size * n, digit_size * n))
grid_x = norm.ppf(np.linspace(0.05, 0.95, n))
grid_y = norm.ppf(np.linspace(0.05, 0.95, n))
for i, yi in enumerate(grid_x):
for j, xi in enumerate(grid_y):
z_sample = np.array([[xi, yi]])
> z_sample = np.tile(z_sample, batch_size).reshape(batch_size, 2) > x_decoded = decoder.predict(z_sample, batch_size=batch_size)
digit = x_decoded[0].reshape(digit_size, digit_size)
figure[i * digit_size: (i + 1) * digit_size,
j * digit_size: (j + 1) * digit_size] = digit
问题:他为什么这样做?我删除了这些废话,一切正常。 第二个问题:在预测方法中为批量大小提供参数的意义到底是什么?我的意思是,这在训练阶段是可以理解的,但在推理阶段却不是。