gpt4 book ai didi

tensorflow - Resnet50图像预处理

转载 作者:行者123 更新时间:2023-12-04 15:43:55 29 4
gpt4 key购买 nike

我正在使用 https://tfhub.dev/google/imagenet/resnet_v2_50/feature_vector/3 来提取图像特征向量。但是,当涉及到如何在通过模块传递图像之前对图像进行预处理时,我感到很困惑。

基于相关Github解释,据说应该做以下事情:

image_path = "path/to/the/jpg/image"
image_string = tf.read_file(image_path)
image = tf.image.decode_jpeg(image_string, channels=3)
image = tf.image.convert_image_dtype(image, tf.float32)

# All other transformations (during training), in my case:
image = tf.random_crop(image, [224, 224, 3])
image = tf.image.random_flip_left_right(image)

# During testing:
image = tf.image.resize_image_with_crop_or_pad(image, 224, 224)

但是,使用上述转换后,我得到的结果表明可能有问题。此外,Resnet paper是说图像应该通过以下方式预处理:

A 224×224 crop is randomly sampled from an image or itshorizontal flip, with the per-pixel mean subtracted...

我不太明白什么意思。有人可以指出我正确的方向吗?

期待您的回答!

最佳答案

TensorFlow Hub 上的图像模块都期望像素值在 [0,1] 范围内,就像您在上面的代码片段中得到的那样。这使得在模块之间切换变得简单和安全。

在模块内部,输入值被缩放到网络训练的范围内。模块https://tfhub.dev/google/imagenet/resnet_v2_50/feature_vector/3已从 TF-Slim 检查点发布(请参阅文档),该检查点使用另一种规范化输入的约定,而不是 He&al。 -- 但所有这一切都得到了照顾。

揭开 He&al. 中的语言神秘面纱:它指的是在他们研究的数据集的所有像素上聚合的平均 R、G 和 B 值,遵循将输入归一化为零均值有助于神经网络更好地训练的古老智慧。然而,后来关于图像分类的论文不再将这种程度的关注扩展到数据集特定的预处理。

关于tensorflow - Resnet50图像预处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56685995/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com