我遇到了以下语句:
convnet = input_data(shape=[None,img_size,img_size,1], name='input')
我尝试寻找描述,但没有找到清晰的解释。
我主要的问题是input_data
函数主要做什么?它是否是我们输入数据的占位符?
关于形状,起始处的None
和末尾处的1
是什么意思?
谢谢。
回答:
input_data
是一个层,它将用作您网络的输入层。在添加任何常规层到您的顺序模型之前,您需要指定输入的外观。例如,在mnist数据集中,您有一个代表28×28图像的784数组。
在您的例子中,网络需要形状为[None, img_size, img_size, 1]的输入,用人类语言来说就是:
None – 许多或一定数量的图像
img_size X img_size – 图像的尺寸
1 – 具有一个颜色通道
如果mnist数据集是全RGB彩色,输入数据的形状将是(None, 28, 28, 3)。通常,None可以被视为批量大小。
为了更明确,如果您的批量大小为1,那么在我们的mnist RGB示例中,您需要作为输入的,是三个28×28矩阵,一个代表R像素,另一个代表G像素,最后一个代表图像的B像素。这只是一个条目。在这种情况下,None的值将是1,但通常它是您决定的批量大小。从这里您应该能理解了。
希望这能澄清问题。
祝好,
Gabriel