prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  little config error in 1.x
  
  mmpose/tree/1.x/configs/hand_2d_keypoint/topdown_heatmap/coco_wholebody_hand)/td-hm_mobilenetv2_8xb32-210e_coco-wholebody-hand-256x256.py
  
  mobilenetv2 out_channels is 1280, however "in_channles" of the head is 2048 in this config file.  
  
  
  </issue>
  <code>
  [start of configs/hand_2d_keypoint/topdown_heatmap/coco_wholebody_hand/td-hm_mobilenetv2_8xb32-210e_coco-wholebody-hand-256x256.py]
  1 _base_ = ['../../../_base_/default_runtime.py']
  2 
  3 # runtime
  4 train_cfg = dict(max_epochs=210, val_interval=10)
  5 
  6 # optimizer
  7 optim_wrapper = dict(optimizer=dict(
  8     type='Adam',
  9     lr=5e-4,
  10 ))
  11 
  12 # learning policy
  13 param_scheduler = [
  14     dict(
  15         type='LinearLR', begin=0, end=500, start_factor=0.001,
  16         by_epoch=False),  # warm-up
  17     dict(
  18         type='MultiStepLR',
  19         begin=0,
  20         end=210,
  21         milestones=[170, 200],
  22         gamma=0.1,
  23         by_epoch=True)
  24 ]
  25 
  26 # automatically scaling LR based on the actual training batch size
  27 auto_scale_lr = dict(base_batch_size=256)
  28 
  29 # hooks
  30 default_hooks = dict(checkpoint=dict(save_best='AUC', rule='greater'))
  31 # codec settings
  32 codec = dict(
  33     type='MSRAHeatmap', input_size=(256, 256), heatmap_size=(64, 64), sigma=2)
  34 
  35 # model settings
  36 model = dict(
  37     type='TopdownPoseEstimator',
  38     data_preprocessor=dict(
  39         type='PoseDataPreprocessor',
  40         mean=[123.675, 116.28, 103.53],
  41         std=[58.395, 57.12, 57.375],
  42         bgr_to_rgb=True),
  43     backbone=dict(
  44         type='MobileNetV2',
  45         widen_factor=1.,
  46         out_indices=(7, ),
  47         init_cfg=dict(type='Pretrained', checkpoint='mmcls://mobilenet_v2')),
  48     head=dict(
  49         type='HeatmapHead',
  50         in_channels=2048,
  51         out_channels=21,
  52         loss=dict(type='KeypointMSELoss', use_target_weight=True),
  53         decoder=codec),
  54     test_cfg=dict(
  55         flip_test=True,
  56         flip_mode='heatmap',
  57         shift_heatmap=True,
  58     ))
  59 
  60 # base dataset settings
  61 dataset_type = 'CocoWholeBodyHandDataset'
  62 data_mode = 'topdown'
  63 data_root = 'data/coco/'
  64 
  65 # pipelines
  66 train_pipeline = [
  67     dict(type='LoadImage', file_client_args={{_base_.file_client_args}}),
  68     dict(type='GetBBoxCenterScale'),
  69     dict(
  70         type='RandomBBoxTransform', rotate_factor=180,
  71         scale_factor=(0.7, 1.3)),
  72     dict(type='RandomFlip', direction='horizontal'),
  73     dict(type='TopdownAffine', input_size=codec['input_size']),
  74     dict(type='GenerateTarget', encoder=codec),
  75     dict(type='PackPoseInputs')
  76 ]
  77 val_pipeline = [
  78     dict(type='LoadImage', file_client_args={{_base_.file_client_args}}),
  79     dict(type='GetBBoxCenterScale'),
  80     dict(type='TopdownAffine', input_size=codec['input_size']),
  81     dict(type='PackPoseInputs')
  82 ]
  83 
  84 # data loaders
  85 train_dataloader = dict(
  86     batch_size=32,
  87     num_workers=2,
  88     persistent_workers=True,
  89     sampler=dict(type='DefaultSampler', shuffle=True),
  90     dataset=dict(
  91         type=dataset_type,
  92         data_root=data_root,
  93         data_mode=data_mode,
  94         ann_file='annotations/coco_wholebody_train_v1.0.json',
  95         data_prefix=dict(img='train2017/'),
  96         pipeline=train_pipeline,
  97     ))
  98 val_dataloader = dict(
  99     batch_size=32,
  100     num_workers=2,
  101     persistent_workers=True,
  102     drop_last=False,
  103     sampler=dict(type='DefaultSampler', shuffle=False, round_up=False),
  104     dataset=dict(
  105         type=dataset_type,
  106         data_root=data_root,
  107         data_mode=data_mode,
  108         ann_file='annotations/coco_wholebody_val_v1.0.json',
  109         data_prefix=dict(img='val2017/'),
  110         test_mode=True,
  111         pipeline=val_pipeline,
  112     ))
  113 test_dataloader = val_dataloader
  114 
  115 val_evaluator = [
  116     dict(type='PCKAccuracy', thr=0.2),
  117     dict(type='AUC'),
  118     dict(type='EPE')
  119 ]
  120 test_evaluator = val_evaluator
  121
  [end of configs/hand_2d_keypoint/topdown_heatmap/coco_wholebody_hand/td-hm_mobilenetv2_8xb32-210e_coco-wholebody-hand-256x256.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/configs/hand_2d_keypoint/topdown_heatmap/coco_wholebody_hand/td-hm_mobilenetv2_8xb32-210e_coco-wholebody-hand-256x256.py b/configs/hand_2d_keypoint/topdown_heatmap/coco_wholebody_hand/td-hm_mobilenetv2_8xb32-210e_coco-wholebody-hand-256x256.py
  --- a/configs/hand_2d_keypoint/topdown_heatmap/coco_wholebody_hand/td-hm_mobilenetv2_8xb32-210e_coco-wholebody-hand-256x256.py
  +++ b/configs/hand_2d_keypoint/topdown_heatmap/coco_wholebody_hand/td-hm_mobilenetv2_8xb32-210e_coco-wholebody-hand-256x256.py
  @@ -47,7 +47,7 @@
           init_cfg=dict(type='Pretrained', checkpoint='mmcls://mobilenet_v2')),
       head=dict(
           type='HeatmapHead',
  -        in_channels=2048,
  +        in_channels=1280,
           out_channels=21,
           loss=dict(type='KeypointMSELoss', use_target_weight=True),
           decoder=codec),
  
verification_info: {"golden_diff": "diff --git a/configs/hand_2d_keypoint/topdown_heatmap/coco_wholebody_hand/td-hm_mobilenetv2_8xb32-210e_coco-wholebody-hand-256x256.py b/configs/hand_2d_keypoint/topdown_heatmap/coco_wholebody_hand/td-hm_mobilenetv2_8xb32-210e_coco-wholebody-hand-256x256.py\n--- a/configs/hand_2d_keypoint/topdown_heatmap/coco_wholebody_hand/td-hm_mobilenetv2_8xb32-210e_coco-wholebody-hand-256x256.py\n+++ b/configs/hand_2d_keypoint/topdown_heatmap/coco_wholebody_hand/td-hm_mobilenetv2_8xb32-210e_coco-wholebody-hand-256x256.py\n@@ -47,7 +47,7 @@\n         init_cfg=dict(type='Pretrained', checkpoint='mmcls://mobilenet_v2')),\n     head=dict(\n         type='HeatmapHead',\n-        in_channels=2048,\n+        in_channels=1280,\n         out_channels=21,\n         loss=dict(type='KeypointMSELoss', use_target_weight=True),\n         decoder=codec),\n", "issue": "little config error in 1.x\n\r\nmmpose/tree/1.x/configs/hand_2d_keypoint/topdown_heatmap/coco_wholebody_hand)/td-hm_mobilenetv2_8xb32-210e_coco-wholebody-hand-256x256.py\r\n\r\nmobilenetv2 out_channels is 1280, however \"in_channles\" of the head is 2048 in this config file.  \r\n\n", "before_files": [{"content": "_base_ = ['../../../_base_/default_runtime.py']\n\n# runtime\ntrain_cfg = dict(max_epochs=210, val_interval=10)\n\n# optimizer\noptim_wrapper = dict(optimizer=dict(\n    type='Adam',\n    lr=5e-4,\n))\n\n# learning policy\nparam_scheduler = [\n    dict(\n        type='LinearLR', begin=0, end=500, start_factor=0.001,\n        by_epoch=False),  # warm-up\n    dict(\n        type='MultiStepLR',\n        begin=0,\n        end=210,\n        milestones=[170, 200],\n        gamma=0.1,\n        by_epoch=True)\n]\n\n# automatically scaling LR based on the actual training batch size\nauto_scale_lr = dict(base_batch_size=256)\n\n# hooks\ndefault_hooks = dict(checkpoint=dict(save_best='AUC', rule='greater'))\n# codec settings\ncodec = dict(\n    type='MSRAHeatmap', input_size=(256, 256), heatmap_size=(64, 64), sigma=2)\n\n# model settings\nmodel = dict(\n    type='TopdownPoseEstimator',\n    data_preprocessor=dict(\n        type='PoseDataPreprocessor',\n        mean=[123.675, 116.28, 103.53],\n        std=[58.395, 57.12, 57.375],\n        bgr_to_rgb=True),\n    backbone=dict(\n        type='MobileNetV2',\n        widen_factor=1.,\n        out_indices=(7, ),\n        init_cfg=dict(type='Pretrained', checkpoint='mmcls://mobilenet_v2')),\n    head=dict(\n        type='HeatmapHead',\n        in_channels=2048,\n        out_channels=21,\n        loss=dict(type='KeypointMSELoss', use_target_weight=True),\n        decoder=codec),\n    test_cfg=dict(\n        flip_test=True,\n        flip_mode='heatmap',\n        shift_heatmap=True,\n    ))\n\n# base dataset settings\ndataset_type = 'CocoWholeBodyHandDataset'\ndata_mode = 'topdown'\ndata_root = 'data/coco/'\n\n# pipelines\ntrain_pipeline = [\n    dict(type='LoadImage', file_client_args={{_base_.file_client_args}}),\n    dict(type='GetBBoxCenterScale'),\n    dict(\n        type='RandomBBoxTransform', rotate_factor=180,\n        scale_factor=(0.7, 1.3)),\n    dict(type='RandomFlip', direction='horizontal'),\n    dict(type='TopdownAffine', input_size=codec['input_size']),\n    dict(type='GenerateTarget', encoder=codec),\n    dict(type='PackPoseInputs')\n]\nval_pipeline = [\n    dict(type='LoadImage', file_client_args={{_base_.file_client_args}}),\n    dict(type='GetBBoxCenterScale'),\n    dict(type='TopdownAffine', input_size=codec['input_size']),\n    dict(type='PackPoseInputs')\n]\n\n# data loaders\ntrain_dataloader = dict(\n    batch_size=32,\n    num_workers=2,\n    persistent_workers=True,\n    sampler=dict(type='DefaultSampler', shuffle=True),\n    dataset=dict(\n        type=dataset_type,\n        data_root=data_root,\n        data_mode=data_mode,\n        ann_file='annotations/coco_wholebody_train_v1.0.json',\n        data_prefix=dict(img='train2017/'),\n        pipeline=train_pipeline,\n    ))\nval_dataloader = dict(\n    batch_size=32,\n    num_workers=2,\n    persistent_workers=True,\n    drop_last=False,\n    sampler=dict(type='DefaultSampler', shuffle=False, round_up=False),\n    dataset=dict(\n        type=dataset_type,\n        data_root=data_root,\n        data_mode=data_mode,\n        ann_file='annotations/coco_wholebody_val_v1.0.json',\n        data_prefix=dict(img='val2017/'),\n        test_mode=True,\n        pipeline=val_pipeline,\n    ))\ntest_dataloader = val_dataloader\n\nval_evaluator = [\n    dict(type='PCKAccuracy', thr=0.2),\n    dict(type='AUC'),\n    dict(type='EPE')\n]\ntest_evaluator = val_evaluator\n", "path": "configs/hand_2d_keypoint/topdown_heatmap/coco_wholebody_hand/td-hm_mobilenetv2_8xb32-210e_coco-wholebody-hand-256x256.py"}]}