gpt4 book ai didi

python - TF超薄: Fine Tune mobilenet v2 on custom dataset

转载 作者:行者123 更新时间:2023-11-28 21:37:22 24 4
gpt4 key购买 nike

我正在尝试在图像分类任务的自定义数据集上微调 Mobilenet_v2_1.4_224 模型。我正在关注本教程TensorFlow-Slim image classification library 。我已经创建了 .tfrecord 训练和验证文件。当我尝试从现有检查点进行微调时,出现以下错误:

InvalidArgumentError (see above for traceback): Assign requires shapes of both tensors to match. lhs shape= [1,1,24,144] rhs shape= [1,1,32,192] [[Node: save/Assign_149 = Assign[T=DT_FLOAT, _class=["loc:@MobilenetV2/expanded_conv_2/expand/weights"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/device:CPU:0"](MobilenetV2/expanded_conv_2/expand/weights, save/RestoreV2:149)]]

我使用的微调脚本是:

DATASET_DIR=G:\数据集

TRAIN_DIR=G:\Dataset\emotion-models\mobilenet_v2

CHECKPOINT_PATH=C:\Users\lenovo\Desktop\mobilenet_v2\mobilenet_v2_1.4_224.ckpt

python train_image_classifier.py \
--train_dir=${TRAIN_DIR} \
--dataset_dir=${DATASET_DIR} \
--dataset_name=emotion \
--dataset_split_name=train \
--model_name=mobilenet_v2 \
--train_image_size=224 \
--clone_on_cpu=True \
--checkpoint_path=${CHECKPOINT_PATH} \
--checkpoint_exclude_scopes=MobilenetV2/Logits \
--trainable_scopes=MobilenetV2/Logits

我怀疑该错误是由于最后两个参数“checkpoint_exclude_scopes”或“trainable_scopes”造成的。

我知道这两个参数用于通过删除最后 2 层并为自定义数据集分类创建我们自己的 softmax 层来进行迁移学习。但我不确定我是否为它们传递了正确的值。

最佳答案

要重新训练模型,您必须微调自定义的类数

MobilenetV2/Predictions and MobilenetV2/predics

--checkpoint_exclude_scopes=MobilenetV2/Logits,MobilenetV2/Predictions,MobilenetV2/predics \
--trainable_scopes=MobilenetV2/Logits,MobilenetV2/Predictions,MobilenetV2/predics \

在 mobilenet_v2.py 中,对于 mobilenet 和 mobilenet_base,depth_multiplier=1,您应该将其更改为 1.4

@slim.add_arg_scope 
def mobilenet_base(input_tensor, depth_multiplier=1.4, **kwargs):
"""Creates base of the mobilenet (no pooling and no logits) ."""
return mobilenet(input_tensor,
depth_multiplier=depth_multiplier,
base_only=True, **kwargs)

@slim.add_arg_scope
def mobilenet(input_tensor,
num_classes=1001,
depth_multiplier=1.4,
scope='MobilenetV2',
conv_defs=None,
finegrain_classification_mode=False,
min_depth=None,
divisible_by=None,
**kwargs):

关于python - TF超薄: Fine Tune mobilenet v2 on custom dataset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49680440/

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