Python Tensorflow预训练模型输入通道范围
我遇到了这个,它实现了一个预训练模型。它说: 格式化数据 使用tf.image模块格式化任务的图像 将图像调整为固定的输入大小,然后重新缩放输入 信道范围为[-1,1] 我想知道这件事。我的理解是,Python Tensorflow预训练模型输入通道范围,python,tensorflow,keras,Python,Tensorflow,Keras,我遇到了这个,它实现了一个预训练模型。它说: 格式化数据 使用tf.image模块格式化任务的图像 将图像调整为固定的输入大小,然后重新缩放输入 信道范围为[-1,1] 我想知道这件事。我的理解是,image=tf.image.resize(image,(IMG\u SIZE,IMG\u SIZE))将图像(可以有任何大小)调整为一个一致的大小。我知道image=(image/127.5)-1不会更改图像的实际大小,但会将值(像素)(介于0到255之间)更改为[-1,1]的范围。在其他示例中,我
image=tf.image.resize(image,(IMG\u SIZE,IMG\u SIZE))
将图像(可以有任何大小)调整为一个一致的大小。我知道image=(image/127.5)-1
不会更改图像的实际大小,但会将值(像素)(介于0到255之间)更改为[-1,1]的范围。在其他示例中,我看到标准化/标准化在[0,1]的范围内进行,因此按1.0/255重新缩放。我不明白什么时候我要用哪个。如果我使用自己的模型,是否缩放到[-1,1]或[0,1]范围取决于我自己?然而,当我使用预训练模型时,我需要知道需要什么。我在谷歌上搜索了mobilenetv2模型,但找不到任何文档告诉我所需的输入通道是[-1,1]。在本文中,它表示所有预训练的张量流模型都要求输入通道为[-1,1]。这是真的吗?特别是,中的所有模型(如果关于图像)都需要[-1,1]的范围,这是真的吗
最后,如何确定预训练模型所需的范围?如果是MobileNetv2,我自己也不会计算出[-1,1]。在页面上我找不到这个信息
此外:是否有一种基本上自动完成的方法?所以我使用一个函数,它会自动检查预训练的tensorflow数据集(它有一个存储该信息的对象)并应用它(假设0-255是我的输入)?我想是在做别的事情(我真的不明白它是做什么的)?这也仅适用于MobileNet v2。一般来说,您关心的是“我应该在[0,1]、-1,1]之间选择什么比例?”因为答案可能因情况而异,我想在下面指出
ResNets
,MobileNetV2
,InceptionResNetV2
)使用[-1,1]比例。在残差中使用[-1,1]比例,在某些情况下会导致某些边被禁用。为了进一步理解,让我们考虑感知器<代码> y= Wx+b。如果w=1
和b=1
则使用输入x=1
结果y=0
。这表明,使用[-1,1]刻度,一些输入值可以通过偏差为零(无需设置w=0
)。对于其他车型(不包括KERA),这一概念也基本正确
此外,在使用不同的数据集时,应该尝试测试不同的缩放方法。然而,在大多数情况下,这不应大大提高模型的准确性。如果您有更多疑问,请告诉我。谢谢。一般来说,您关心的是“我应该在[0,1]、-1,1]之间选择什么比例?”因为答案可能因情况而异,我想在下面指出
ResNets
,MobileNetV2
,InceptionResNetV2
)使用[-1,1]比例。在残差中使用[-1,1]比例,在某些情况下会导致某些边被禁用。为了进一步理解,让我们考虑感知器<代码> y= Wx+b。如果w=1
和b=1
则使用输入x=1
结果y=0
。这表明,使用[-1,1]刻度,一些输入值可以通过偏差为零(无需设置w=0
)。对于其他车型(不包括KERA),这一概念也基本正确
此外,在使用不同的数据集时,应该尝试测试不同的缩放方法。然而,在大多数情况下,这不应大大提高模型的准确性。如果您有更多疑问,请告诉我。谢谢。@Quwsair Ohi谢谢你的帖子,但这对我来说并不是什么新鲜事。正如我所说的,我知道我可以缩放0,1或-1,1,这取决于我的具体解决方案,而且我也知道为什么我们通常会缩放/标准化。然而,我不知道什么时候在预训练模型中使用它。问题是我在哪里可以找到MobileNetv2使用-1,1而不是0,1的文档中的信息。此外,我的问题是,tensorflow hub中其他预训练模型的说明在哪里,以及在应用它们之前我如何知道
IMG_SIZE = 160 # All images will be resized to 160x160
def format_example(image, label):
image = tf.cast(image, tf.float32)
image = (image/127.5) - 1
image = tf.image.resize(image, (IMG_SIZE, IMG_SIZE))
return image, label