1

对于我的深度学习课程,我需要实现一个与Tensorflow MNIST专家教程完全相同的神经网络。 ,CNN下采样MNIST数据集

唯一的区别是我需要down-sampşe数据库,然后将它放入神经网络。我应该裁剪和调整大小,还是应该使用接受多种数据大小(28x28和14x14)的参数来实现神经网络。

张量教程中的所有参数都是静态的,所以我找不到用14x14图像提供算法的方法。我应该使用哪种工具进行“最佳”下采样?

回答

0

您需要将输入图像的大小调整为固定大小(从描述中看,tp为14 * 14)。有不同的方法可以做到这一点,例如,您可以使用插值来调整大小,简单地裁剪图像的中心部分或某个角落,或随机选择一个或多个补丁(所有尺寸与网络输入相同)给图像。你也可以结合这些方法。例如,在VGG中,他们首先使用双线性插值来保留调整大小,然后从得到的图像中获取随机补丁(对于测试阶段,他们获得中心裁剪)。您可以通过以下链接找到TensorFlow VGG的预处理源代码: https://github.com/tensorflow/models/blob/master/slim/preprocessing/vgg_preprocessing.py

的示例代码的唯一参数在需要改变的是那些涉及到输入图像大小,你所提到的教程。例如,您需要将28s更改为14s,将784s更改为228s(这些仅仅是示例,还有其他需要更改的维度大小)。

+0

当我将所有的28更改为14并将所有784更改为196时,出现以下错误: InvalidArgumentError(请参阅上面的回溯):重构输入是一个有1024个值的张量,但所需的形状需要([MaxPool_1,Reshape_1/shape]]的倍数3136 \t [[Node:Reshape_1 = Reshape [T = DT_FLOAT,Tshape = DT_INT32,_device =“/ job:localhost/replica:0/task:0/cpu: ] 为了试试这个,我使用numpy.resize对数据集进行了采样,但我知道这不是正确的方法 –

+0

至少可以添加导致此错误的代码行。 – Ali

+0

对不起,我以为我加了它,但我没有。这里是: h_pool2_flat = tf.reshape(h_pool2,[-1,7 * 7 * 64]) –