gpt4 book ai didi

tensorflow - DeepLab 的 --train_crop_size 实际上是做什么的?

转载 作者:行者123 更新时间:2023-12-01 03:06:54 25 4
gpt4 key购买 nike

关注 instructions included in the model , --training_crop_size设置为远小于训练图像大小的值。例如:

python deeplab/train.py \
--logtostderr \
--training_number_of_steps=90000 \
--train_split="train" \
--model_variant="xception_65" \
--atrous_rates=6 \
--atrous_rates=12 \
--atrous_rates=18 \
--output_stride=16 \
--decoder_output_stride=4 \
--train_crop_size="769,769" \
--train_batch_size=1 \
--dataset="cityscapes" \
--tf_initial_checkpoint=${PATH_TO_INITIAL_CHECKPOINT} \
--train_logdir=${PATH_TO_TRAIN_DIR} \
--dataset_dir=${PATH_TO_DATASET}

但是这个选项实际上有什么作用呢?是否需要随机裁剪每个训练图像?如果是这样,输入尺寸会不会更小,例如,例如 769x769 (WxH)?根据说明,评估裁剪大小设置为 2049x1025。当没有调整图像大小的建议时,输入尺寸为 769x769 的网络如何接受 2049x1025 输入?会出现形状不匹配的问题。

说明有冲突吗?

最佳答案

是的,在您的情况下,图像似乎在训练过程中被裁剪。这可以在系统的计算限制内实现更大的批量大小。更大的批量会导致优化步骤基于多个实例,而不是每个优化(=训练)步骤只考虑一个(或很少)实例。这通常会带来更好的结果。通常使用随机裁剪来确保网络对图像的所有部分进行训练。

“全卷积”CNN 的训练或部署不需要固定的输入大小。通过在输入边缘使用填充,维度减少通常由 2^n 的因子表示(由跨步或池化引起)。示例:在解码器再次上采样之前,您的编码器将每个空间维度减少了 2^4 倍。 --> 所以你只需要确保你的输入维度是 2^4 的倍数(确切的输入大小无关紧要,它只是在训练过程中定义网络隐藏层的空间维度)。在 deeplab 的情况下,框架会自动将给定的输入维度调整为所需的 2^x 倍数,以使其更易于使用。

评估实例不应该被随机裁剪,因为只有确定性评估过程才能保证有意义的评估结果。在评估期间,没有优化,批量大小为 1 就可以了。

关于tensorflow - DeepLab 的 --train_crop_size 实际上是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56096120/

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