如何生成图像?

时间:2019-06-05 04:08:43

标签: python python-3.x tensorflow

我在tensorflow official site中使用tensorflow穿越了GAN网络。

我在这里遇到了这个问题

generator = make_generator_model()

noise = tf.random.normal([1, 100])
generated_image = generator(noise, training=False)

plt.imshow(generated_image[0, :, :, 0], cmap='gray')

make generator_model()返回一个顺序模型。是的,很酷。但是,generated_image呢?它不是张量值吗?当我们没有运行会话时,我们如何才能生成图像并对其进行检查,以及matplotlib pyplot函数如何在张量对象上进行绘图?它应该是numpy,据我所知,pyplot接受numpy数组来绘制图像。是不是有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

该方法定义为

 def make_generator_model():
     model = tf.keras.Sequential()
     model.add(layers.Dense(4*4*1024, use_bias = False, input_shape = (100,)))
     model.add(layers.BatchNormalization())
     model.add(layers.LeakyReLU())

如您所见,您得到的是tf.keras.Sequential

致密层

在Keras中,您可以创建图层来开发模型。模型通常是分层的网络,其中最常见的类型是分层的堆栈

在模型中添加紧密连接的层将作为形状的输入数组(,100)。数据的形状将是第一层之后的(,4 * 4 * 1024)。在这种情况下,由于会自动进行形状推断,因此您无需指定向前移动的输入大小

批处理规范化功能类似于在网络的每一层进行预处理。

对于所有正值,ReLU都是线性的,对于所有负值,ReLU均设置为零。泄漏的ReLU的负值斜率较小,而不是零。

例如,当x <0时,泄漏的ReLU可能具有y = 0.01x

更多信息https://towardsdatascience.com/developing-a-dcgan-model-in-tensorflow-2-0-396bc1a101b2

答案 1 :(得分:0)

本教程使用TF 2.0,默认情况下使用急切执行。这意味着操作按定义运行,例如PyTorch。因此,您可以以更加“自然”的方式(例如numpy函数)来考虑控制流。立即调用generator会返回一个带有值的张量(plt.imshow会转换为一个numpy数组),不再有会话。我鼓励您查看TF网站上有关2.0更改的教程。