使用imageai做图像检测,训练神经网络模型过程中报错,应该如何解决?

######在使用imageai做图像识别过程中,训练yolov3模型的过程中报错,代码如下:

from imageai.Detection.Custom import DetectionModelTrainer
# 定义模型训练器
trainer = DetectionModelTrainer()
# 设置网络类型
trainer.setModelTypeAsYOLOv3()
# 设置要在其上训练网络的图像数据集的路径
trainer.setDataDirectory(data_directory=r'C:\Users\Administrator\Desktop\缺螺栓缺陷')
trainer.setTrainConfig(object_names_array=["缺螺栓"], batch_size=4, num_experiments=200, train_from_pretrained_model="yolov3.h5")
trainer.trainModel()
报错的内容就是模型的shape不一致,报错内容如下:
Generating anchor boxes for training images and annotation...
Average IOU for 9 anchors: 0.76
Anchor Boxes generated.
Detection configuration saved in  C:\Users\Administrator\Desktop\缺螺栓缺陷\json\detection_config.json
Evaluating over 68 samples taken from C:\Users\Administrator\Desktop\缺螺栓缺陷\validation
Training over 230 samples  given at C:\Users\Administrator\Desktop\缺螺栓缺陷\train
Training on:     ['缺螺栓']
Training with Batch Size:  4
Number of Training Samples:  230
Number of Validation Samples:  68
Number of Experiments:  200
Training with transfer learning from pretrained Model
Traceback (most recent call last):
  File "yolov3模型训练.py", line 12, in <module>
    trainer.trainModel()
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\imageai\Detection\Custom\__init__.py", line 300, in trainModel
    class_scale=self.__train_class_scale,
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\imageai\Detection\Custom\__init__.py", line 590, in _create_model
    template_model.load_weights(self.__pre_trained_model, by_name=True)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\keras\engine\training.py", line 2359, in load_weights
    f, self.layers, skip_mismatch=skip_mismatch)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\keras\saving\hdf5_format.py", line 795, in load_weights_from_hdf5_group_by_name
    str(weight_values[i].shape) + '.')
ValueError: Layer #1 (named "conv2d_1"), weight <tf.Variable 'conv2d_1/kernel:0' shape=(3, 3, 32, 64) dtype=float32, numpy=
array([[[[-7.55982250e-02,  8.26351121e-02,  1.19901896e-02, ...,
           6.87628463e-02,  5.74081168e-02, -7.02995509e-02],
         [-1.02900043e-02,  7.50701800e-02, -1.30926371e-02, ...,
          -5.27026281e-02, -2.15945654e-02, -8.29975456e-02],
         [-6.52338713e-02,  7.83692077e-02, -1.48128495e-02, ...,
           4.85764369e-02,  6.11529127e-02, -6.68061227e-02],
         ...,
         [-6.47635683e-02,  3.58783379e-02,  9.65869427e-03, ...,
           2.62726918e-02,  5.20925596e-02,  5.49750552e-02],
         [ 2.90249959e-02,  5.64406291e-02, -5.58074713e-02, ...,
           4.78625298e-05,  3.86977196e-03,  8.01378712e-02],
         [ 3.68311405e-02,  2.48738378e-03,  4.71920595e-02, ...,
          -2.82590203e-02, -3.09717655e-03, -4.94839177e-02]],

        [[ 6.90576211e-02, -4.81714830e-02,  8.31509903e-02, ...,
          -2.22342424e-02,  7.22025409e-02,  3.14762220e-02],
         [-4.12225723e-02,  3.48845869e-03, -7.18926042e-02, ...,
           2.10748538e-02, -2.50856094e-02, -1.25205517e-02],
         [ 2.59579793e-02, -5.73322996e-02,  1.87367201e-02, ...,
           7.20834956e-02,  2.36652270e-02, -1.49794593e-02],
         ...,
         [ 3.94402742e-02,  5.67239299e-02, -3.99589166e-02, ...,
          -4.11105976e-02, -6.88234195e-02,  6.52644411e-02],
         [ 2.78836861e-02, -2.15284228e-02,  8.26799050e-02, ...,
          -2.18889862e-03,  6.84652403e-02,  1.96453184e-03],
         [ 8.18783045e-03, -3.15397009e-02,  7.41440281e-02, ...,
          -8.00500736e-02, -7.21582770e-02, -2.45241933e-02]],

        [[-5.00125885e-02,  1.45918950e-02, -4.85237651e-02, ...,
          -3.24999094e-02, -7.27758259e-02,  8.79895687e-03],
         [-7.18952417e-02,  9.15721804e-03,  6.59097210e-02, ...,
          -5.48223481e-02,  4.43992093e-02,  4.46015596e-03],
         [-5.10886535e-02,  2.63375044e-03,  2.38427147e-02, ...,
           2.62507051e-03,  2.66973376e-02, -7.86364079e-04],
         ...,
         [-7.75923133e-02, -3.08635086e-03, -8.28468427e-02, ...,
           1.93286762e-02, -5.30917272e-02,  4.07604352e-02],
         [ 3.47326398e-02,  7.68997744e-02,  4.12551761e-02, ...,
          -3.46282534e-02, -8.09056759e-02,  3.21373120e-02],
         [ 8.16479996e-02,  4.71863821e-02,  4.65091094e-02, ...,
          -1.85971633e-02, -1.85048580e-03,  6.65953532e-02]]],


       [[[-9.00483131e-03,  1.64719224e-02, -5.74825406e-02, ...,
           2.76933089e-02,  2.28546858e-02,  4.64727506e-02],
         [-4.67090011e-02, -3.81087884e-02, -4.94891629e-02, ...,
           5.99923357e-02, -1.35381818e-02, -6.68158531e-02],
         [-6.49167746e-02, -2.48402767e-02,  6.27276078e-02, ...,
          -7.18519688e-02,  6.55363873e-02,  5.53332269e-04],
         ...,
         [ 3.80875692e-02,  9.18278843e-03,  7.40366802e-02, ...,
           7.86736384e-02, -2.51217932e-03,  2.65053138e-02],
         [-5.75195961e-02,  7.16229156e-02,  8.00869837e-02, ...,
          -2.03895792e-02, -2.59402394e-02, -5.99668622e-02],
         [ 4.85914946e-03,  4.28338423e-02,  5.13970852e-03, ...,
          -7.89589286e-02, -1.71532631e-02, -3.44207287e-02]],

        [[ 7.87212625e-02,  9.57467407e-03, -3.92093658e-02, ...,
          -5.69519810e-02,  2.35057473e-02,  8.31170753e-02],
         [ 6.21166080e-03,  7.25290999e-02, -4.19366956e-02, ...,
           6.95243254e-02, -7.60835037e-02, -4.51730900e-02],
         [ 6.06169775e-02, -2.93555856e-02,  5.11810929e-03, ...,
          -3.78324613e-02, -1.79531798e-02,  7.54691139e-02],
         ...,
         [ 2.69888267e-02,  7.65034929e-02, -2.62696147e-02, ...,
          -1.42345428e-02,  7.83759579e-02, -1.57767907e-02],
         [-5.90123534e-02, -5.38626723e-02, -4.16558795e-02, ...,
           3.11485156e-02, -3.79792601e-03, -2.47262940e-02],
         [-3.88711914e-02,  6.27986267e-02,  4.39083204e-02, ...,
           1.42261982e-02, -7.20125437e-02, -2.63060741e-02]],

        [[-4.47610766e-03, -7.30250031e-03, -4.20148782e-02, ...,
          -3.78246307e-02, -8.05660486e-02, -1.24391690e-02],
         [-7.06427321e-02, -3.62122059e-03,  2.29718909e-02, ...,
           6.39342889e-02, -4.54278998e-02, -5.15856147e-02],
         [ 3.41868401e-03,  1.18460655e-02, -1.36456713e-02, ...,
           2.28049606e-03,  6.15267232e-02, -1.95327029e-02],
         ...,
         [-2.46673040e-02,  1.63741708e-02, -4.66229133e-02, ...,
           1.57797560e-02, -2.70453691e-02, -2.82794461e-02],
         [-2.44899802e-02,  5.93657270e-02,  6.66519031e-02, ...,
          -8.04527849e-02,  4.18772548e-03, -5.72128110e-02],
         [ 2.47555971e-02, -4.43705544e-02,  3.00578102e-02, ...,
          -6.14969134e-02, -3.33406925e-02,  2.89800763e-02]]],


       [[[ 3.79273891e-02,  8.10134634e-02,  3.91989723e-02, ...,
          -4.83228378e-02,  2.77461633e-02, -6.96711540e-02],
         [ 4.68196645e-02, -6.67723268e-03, -3.96450572e-02, ...,
           6.34986535e-02, -6.13087825e-02, -2.40685157e-02],
         [ 7.64469877e-02, -3.23862433e-02,  3.56316194e-02, ...,
          -8.19963813e-02,  6.04523495e-02, -6.04759865e-02],
         ...,
         [-6.29255399e-02, -2.69585252e-02, -5.58640361e-02, ...,
          -9.03282315e-03, -6.07325844e-02,  2.12623850e-02],
         [ 6.14017472e-02,  2.43009329e-02, -2.99929008e-02, ...,
           4.37494889e-02, -4.00276594e-02,  3.42007056e-02],
         [-4.42644171e-02, -6.57247156e-02, -2.14648470e-02, ...,
          -3.64549980e-02,  4.93645668e-04, -7.28609413e-02]],

        [[ 2.00204849e-02,  7.28648379e-02,  3.02742347e-02, ...,
          -3.37184295e-02,  5.25677279e-02, -7.53009319e-02],
         [-5.17873764e-02,  5.35876825e-02,  5.81894591e-02, ...,
           3.47467288e-02, -2.98320055e-02, -4.02224064e-03],
         [-4.07109410e-03, -2.74654478e-03,  4.26492766e-02, ...,
           7.46763423e-02,  3.67412940e-02, -5.07686548e-02],
         ...,
         [-1.10624656e-02, -7.71556497e-02, -4.32157516e-02, ...,
           7.41989687e-02,  6.49853721e-02,  4.11736965e-02],
         [ 6.32173792e-02,  7.80219063e-02, -4.13032770e-02, ...,
           1.98118463e-02, -5.06991558e-02, -1.12944841e-02],
         [-4.54411730e-02,  5.69200739e-02, -6.31957278e-02, ...,
          -1.74710155e-02, -7.76614174e-02, -2.66859531e-02]],

        [[-2.52828002e-02, -2.95772776e-02,  6.06495813e-02, ...,
          -2.21192837e-04, -2.03591809e-02,  8.30788687e-02],
         [-6.98880404e-02,  5.60344681e-02, -3.29724774e-02, ...,
          -1.30224228e-03,  1.38123259e-02, -3.73727493e-02],
         [ 2.18382478e-02, -1.99317560e-02, -8.09117183e-02, ...,
          -2.46293359e-02, -1.00350752e-02,  4.96875122e-02],
         ...,
         [-7.47102499e-03, -8.04918408e-02,  4.84050885e-02, ...,
           6.62282854e-03,  5.06260172e-02, -6.02201447e-02],
         [ 2.28264555e-02,  1.66333541e-02, -5.78190908e-02, ...,
          -1.28892064e-02,  6.74900487e-02, -3.93629670e-02],
         [ 6.80380687e-02,  4.13797498e-02, -3.52576375e-02, ...,
           4.83416393e-02, -9.35369730e-03, -7.25784153e-02]]]],
      dtype=float32)> has shape (3, 3, 32, 64), but the saved weight has shape (32, 3, 3, 3).

请厉害的人士解答是怎么回事呢?

参考问题三: https://blog.csdn.net/weixin_40085833/article/details/83584473

找到你设置weight的地方,

conv的shape对不上,一般都是图像分辨率不对所导致的,你看一下是不是你的图像size太小了,又或者是没有在setTrainConfig中设置输入数据的shape


ValueError: Layer #1 (named "conv2d_1"), weight <tf.Variable 'conv2d_1/kernel:0' shape=(3, 3, 32, 64) dtype=float32, numpy=
array

应该是参数不对等把

ValueError: Layer #1 (named "conv2d_1"), weight <tf.Variable 'conv2d_1/kernel:0' shape=(3, 3, 32, 64) dtype=float32, numpy has shape (3, 3, 32, 64), but the saved weight has shape (32, 3, 3, 3).

您的模型中的第一层(名为 "conv2d_1")的权重的形状与保存的权重的形状不匹配。您可以使用以下步骤来解决此错误:
确保您使用了正确的权重文件,并确保该文件与您的模型结构兼容。在这种情况下,您的模型中的第一层权重的形状应为 (3, 3, 32, 64),而保存的权重的形状为 (32, 3, 3, 3),这两者是不兼容的。
如果您确定使用的是正确的权重文件,那么您的模型结构可能与保存的权重文件不兼容。在这种情况下,您需要手动更改您的模型以使其兼容于保存的权重。

1.先确保你已经正确安装了所有 ImageAI 所需的依赖包和库,并且确保这些包和库的版本都是最新的。

2.尝试重新运行代码,看看是否能够解决问题。

3.如果还是无法解决,可以尝试在网上搜索相关的错误消息,看看有没有类似的问题和解决方案。

4.如果还是无法解决,你可以尝试在 ImageAI 的 GitHub 页面或官方文档中寻找帮助,或者在 Stack Overflow 上提问。

5.如果以上方法都没有解决问题,你可以尝试联系 ImageAI 的开发人员,他们可能会帮助你解决问题。