繁体   English   中英

训练我的神经网络后,如何从最后一个解码器层“登录”中提取图像?

[英]how can i extract images from the last decoder layer “logits” after training my neural network?

我正在使用tensorflow训练神经网络模型以进行图像分割,并且我希望能够在训练后从最终的Logit层提取图像

这是我模型的解码器部分

解码器

上采样层1:

upsample1 = tf.image.resize_images(pool5, size=(200, 200), method=tf.image.ResizeMethod.NEAREST_NEIGHBOR)

Deconvolutional layer 1 :
deconv1 = tf.layers.conv2d_transpose(inputs=upsample1, filters=512, kernel_size=(3, 3),strides=(1, 1),  padding='same',
                                     activation=tf.nn.relu)
deconv1bis = tf.layers.conv2d_transpose(inputs=deconv1, filters=512, kernel_size=(3, 3),strides=(1, 1),  padding='same',
                                        activation=tf.nn.relu)
deconv1bisbis = tf.layers.conv2d_transpose(inputs=deconv1bis, filters=512, kernel_size=(3, 3),strides=(1, 1),  padding='same',
                                           activation=tf.nn.relu)

上采样层2:

upsample2 = tf.image.resize_images(deconv1bisbis, size=(200, 200),  method=tf.image.ResizeMethod.NEAREST_NEIGHBOR)

反卷积层2:

deconv2 = tf.layers.conv2d_transpose(inputs=upsample2, filters=512,strides=(1, 1),  kernel_size=(3, 3), padding='same',
                                     activation=tf.nn.relu)
deconv2bis = tf.layers.conv2d_transpose(inputs=deconv2, filters=512,strides=(1, 1),  kernel_size=(3, 3), padding='same',
                                        activation=tf.nn.relu)
deconv2bisbis = tf.layers.conv2d_transpose(inputs=deconv2bis, filters=512, strides=(1, 1), kernel_size=(3, 3), padding='same',
                                           activation=tf.nn.relu)

上采样层3:

upsample3 = tf.image.resize_images(deconv2bisbis, size=(200, 200),  method=tf.image.ResizeMethod.NEAREST_NEIGHBOR)

反卷积层3:

deconv3 = tf.layers.conv2d_transpose(inputs=upsample3, filters=256,strides=(1, 1),  kernel_size=(3, 3), padding='same',
                                     activation=tf.nn.relu)
deconv3bis = tf.layers.conv2d_transpose(inputs=deconv3, filters=256,strides=(1, 1),  kernel_size=(3, 3), padding='same',
                                        activation=tf.nn.relu)
deconv3bisbis = tf.layers.conv2d_transpose(inputs=deconv3bis, filters=512,strides=(1, 1), kernel_size=(3, 3), padding='same',
                                           activation=tf.nn.relu)

上采样层4:

upsample4 = tf.image.resize_images(deconv3bisbis, size=(200, 200),  method=tf.image.ResizeMethod.NEAREST_NEIGHBOR)

反卷积层4:

deconv4 = tf.layers.conv2d_transpose(inputs=upsample4, filters=128,strides=(1, 1),  kernel_size=(3, 3), padding='same',
                                     activation=tf.nn.relu)
deconv4bis = tf.layers.conv2d_transpose(inputs=deconv4, filters=128,strides=(1, 1),  kernel_size=(3, 3), padding='same',
                                        activation=tf.nn.relu)

上采样层5:

upsample5 = tf.image.resize_images(deconv4bis, size=(200, 200),  method=tf.image.ResizeMethod.NEAREST_NEIGHBOR)

反卷积层5:

deconv5 = tf.layers.conv2d_transpose(inputs=upsample5, filters=64,strides=(1, 1),  kernel_size=(3, 3), padding='same',
                                     activation=tf.nn.relu)
deconv5bis = tf.layers.conv2d_transpose(inputs=deconv5, filters=64,strides=(1, 1),  kernel_size=(3, 3), padding='same',
                                        activation=tf.nn.relu)

Logits层

logits = tf.layers.dense(inputs=deconv5bis, units=1, activation=tf.nn.relu)

有人知道我该怎么做吗?

我猜你的意思是:

我希望能够在训练后从最终的Logits层提取图像

好吧,实际上这行不通。 但是不用担心,我想您的意思是您想看完神经网络训练后如何看到图像上的分割或蒙版。

在这里,我们谈论的是训练完成后的预测部分。

完成后,您可以拍摄所需的任何图像,然后应用此模型在其上输出分割结果。

在出现分类问题的情况下,输出将采用数字(概率)的形式,或者将整数掩码定位在图像上的整数序列,等等。

您可能会在这里找到答案: Tensorflow:如何对经过训练的模型进行预测(使用图像作为输入)?

就像一条注释会有所帮助一样,如果您是深度学习的入门者,我强烈建议从Keras开始。 Tensorflow是一个很棒的工具,但是它的级别很低,并且需要您不需要知道的更复杂的细节。

我希望这会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM