输入图像为2通道图片的onnx模型无法转化 The channel of r_shape must be 3!
The channel of r_shape must be 3! W build: ===================== WARN(4) ===================== E rknn-toolkit2 version: 1.4.0-22dcfef4 Quantizating : 0%| | 0/309 [00:00<?, ?it/s] E build: Catch exception when building RKNN model! E build: Traceback (most recent call last): E build: File "rknn/api/rknn_base.py", line 1549, in rknn.api.rknn_base.RKNNBase.build E build: File "rknn/api/rknn_base.py", line 112, in rknn.api.rknn_base.RKNNBase._quantize E build: File "rknn/api/quantizer.py", line 914, in rknn.api.quantizer.Quantizer.run E build: File "rknn/api/quantizer.py", line 508, in rknn.api.quantizer.Quantizer._get_layer_range E build: File "rknn/api/rknn_utils.py", line 203, in rknn.api.rknn_utils.get_input_img E build: File "rknn/api/rknn_log.py", line 113, in rknn.api.rknn_log.RKNNLog.e E build: ValueError: The channel of r_shape must be 3!
求助,有没有办法去修改rknn读取图片的方法呢
@MercKAi did you solve it ? I am facing the same issue with any Keras Application Model like MobileNetV2 or EfficientNetB0
it seems related to the quantification, so I tried :
means = [104, 117, 123]
rknn.config(target_platform='rv1106', mean_values= [means], std_values=[means])
Since My model has input shape of (10, 150, 180, 3) (10 frames ), it returns this errors :
E load_onnx: The len of mean_values ([104, 117, 123]) for input 0 is wrong, expect 150!
W load_onnx: ===================== WARN(6) =====================
E rknn-toolkit2 version: 1.6.0+81f21f4d
E load_onnx: Catch exception when loading onnx model: /home/mac/PycharmProjects/RealTimeFightDetect/fights.onnx!
E load_onnx: Traceback (most recent call last):
E load_onnx: File "rknn/api/rknn_base.py", line 1540, in rknn.api.rknn_base.RKNNBase.load_onnx
E load_onnx: File "rknn/api/rknn_base.py", line 790, in rknn.api.rknn_base.RKNNBase._create_ir_and_inputs_meta
E load_onnx: File "rknn/api/rknn_log.py", line 92, in rknn.api.rknn_log.RKNNLog.e
E load_onnx: ValueError: The len of mean_values ([104, 117, 123]) for input 0 is wrong, expect 150!
So I tried this :
means = [104, 117, 123]
->>> means = np.stack([means] * 150) /////// repeat it 150 times
rknn.config(target_platform='rv1106', mean_values= [means], std_values=[means])
Now I am getting this error :
File ~/miniconda3/envs/ai/lib/python3.11/site-packages/rknn/api/rknn.py:124, in RKNN.config(self, mean_values, std_values, quantized_dtype, quantized_algorithm, quantized_method, target_platform, quant_img_RGB2BGR, float_dtype, optimization_level, custom_string, remove_weight, compress_weight, inputs_yuv_fmt, single_core_mode, dynamic_input, model_pruning, op_target, quantize_weight, remove_reshape, **kwargs)
121 args.remove_reshape = remove_reshape
122 args.kwargs = kwargs
--> 124 return self.rknn_base.config(args)
File rknn/api/rknn_base.py:991, in rknn.api.rknn_base.RKNNBase.config()
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Please help !
请问有解决嘛,我也遇到这个问题