azeme1 / keras2ncnn

MIT License
24 stars 0 forks source link

hellow #1

Closed caoyuanjie1996 closed 3 years ago

caoyuanjie1996 commented 4 years ago

my net is yolo keras ,please help me solve it,thanks

azeme1 commented 4 years ago

Hello, The problem in conversion that is the Lambda function inside the model is not recognized with load_model function. Could you be so kind to send me the source code of the model with the lambda function? Please note, I will forced to look inside the lambda function and convert it to the 'static type' keras layers. After that we can convert this one into NCNN.

azeme1 commented 4 years ago

There also issues with this model: 1) multiple input 2) free shape input I am not sure NCNN support these features

caoyuanjie1996 commented 4 years ago

i have send you my code on qq email,thank you please

caoyuanjie1996 commented 4 years ago

hellow,dalao,my code is thanks,my net.h5 is github have send you.thank you please

------------------ 原始邮件 ------------------ 发件人: "azeme1/keras2ncnn" <notifications@github.com>; 发送时间: 2020年10月23日(星期五) 下午4:16 收件人: "azeme1/keras2ncnn"<keras2ncnn@noreply.github.com>; 抄送: "caoyuanjie"<961537227@qq.com>;"Author"<author@noreply.github.com>; 主题: Re: [azeme1/keras2ncnn] grid, raw_pred, pred_xy, pred_wh = yolo_head(yolo_outputs[l], NameError: name 'yolo_head' is not defined (#1)

Hello, The problem in conversion that is the Lambda function inside the model is not recognized with load_model function. Could you be so kind to send me the source code of the model with the lambda function? Please note, I will forced to look inside the lambda function and convert it to the 'static type' keras layers. After that we can convert this one into NCNN.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

azeme1 commented 4 years ago

I look like you forgot to paste the code.I need only the keras model creation code with any weights values.23.10.2020, 11:37, "caoyuanjie1996" notifications@github.com: i have send you my code on qq email,thank you please

—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.

caoyuanjie1996 commented 4 years ago

def yolo_head(feats, anchors, num_classes, input_shape, calc_loss=False): num_anchors = len(anchors)

[1, 1, 1, num_anchors, 2]

anchors_tensor = K.reshape(K.constant(anchors), [1, 1, 1, num_anchors, 2])

# 获得x,y的网格
# (13,13, 1, 2)
grid_shape = K.shape(feats)[1:3]  # height, width
grid_y = K.tile(K.reshape(K.arange(0, stop=grid_shape[0]), [-1, 1, 1, 1]),
                [1, grid_shape[1], 1, 1])
grid_x = K.tile(K.reshape(K.arange(0, stop=grid_shape[1]), [1, -1, 1, 1]),
                [grid_shape[0], 1, 1, 1])
grid = K.concatenate([grid_x, grid_y])
grid = K.cast(grid, K.dtype(feats))

# (batch_size,13,13,3,85)
feats = K.reshape(feats, [-1, grid_shape[0], grid_shape[1], num_anchors, num_classes + 5])

# 将预测值调成真实值
# box_xy对应框的中心点
# box_wh对应框的宽和高
box_xy = (K.sigmoid(feats[..., :2]) + grid) / K.cast(grid_shape[::-1], K.dtype(feats))
box_wh = K.exp(feats[..., 2:4]) * anchors_tensor / K.cast(input_shape[::-1], K.dtype(feats))
box_confidence = K.sigmoid(feats[..., 4:5])
box_class_probs = K.sigmoid(feats[..., 5:])

# 在计算loss的时候返回如下参数
if calc_loss == True:
    return grid, feats, box_xy, box_wh
return box_xy, box_wh, box_confidence, box_class_probs
azeme1 commented 4 years ago

I am tring to load you model

with the script from tensorflow.keras.models import load_model from tensorflow.keras import backend as K import tensorflow

def yolo_head(feats, anchors, num_classes, input_shape, calc_loss=False): num_anchors = len(anchors)

[1, 1, 1, num_anchors, 2]

anchors_tensor = K.reshape(K.constant(anchors), [1, 1, 1, num_anchors, 2])

# 获得x,y的网格
# (13,13, 1, 2)
grid_shape = K.shape(feats)[1:3]  # height, width
grid_y = K.tile(K.reshape(K.arange(0, stop=grid_shape[0]), [-1, 1, 1, 1]),
                [1, grid_shape[1], 1, 1])
grid_x = K.tile(K.reshape(K.arange(0, stop=grid_shape[1]), [1, -1, 1, 1]),
                [grid_shape[0], 1, 1, 1])
grid = K.concatenate([grid_x, grid_y])
grid = K.cast(grid, K.dtype(feats))

# (batch_size,13,13,3,85)
feats = K.reshape(feats, [-1, grid_shape[0], grid_shape[1], num_anchors, num_classes + 5])

# 将预测值调成真实值
# box_xy对应框的中心点
# box_wh对应框的宽和高
box_xy = (K.sigmoid(feats[..., :2]) + grid) / K.cast(grid_shape[::-1], K.dtype(feats))
box_wh = K.exp(feats[..., 2:4]) * anchors_tensor / K.cast(input_shape[::-1], K.dtype(feats))
box_confidence = K.sigmoid(feats[..., 4:5])
box_class_probs = K.sigmoid(feats[..., 5:])

# 在计算loss的时候返回如下参数
if calc_loss == True:
    return grid, feats, box_xy, box_wh
return box_xy, box_wh, box_confidence, box_class_probs

model = load_model('tf_a85.h5', custom_objects={'yolo_head': yolo_head})

but bot the error (with tensorflow 2.1 and 1.14) 2020-10-23 16:56:04.398166: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2 Traceback (most recent call last): File "/keras2ncnn/tmp.py", line 37, in model = load_model('tf_a85.h5', custom_objects={'yolo_head': yolo_head}) File "keras2ncnn_tf2x\lib\site-packages\tensorflow_core\python\keras\saving\save.py", line 146, in load_model return hdf5_format.load_model_from_hdf5(filepath, custom_objects, compile) File "keras2ncnn_tf2x\lib\site-packages\tensorflow_core\python\keras\saving\hdf5_format.py", line 168, in load_model_from_hdf5 custom_objects=custom_objects) File "keras2ncnn_tf2x\lib\site-packages\tensorflow_core\python\keras\saving\model_config.py", line 55, in model_from_config return deserialize(config, custom_objects=custom_objects) File "keras2ncnn_tf2x\lib\site-packages\tensorflow_core\python\keras\layers\serialization.py", line 106, in deserialize printable_module_name='layer') File "keras2ncnn_tf2x\lib\site-packages\tensorflow_core\python\keras\utils\generic_utils.py", line 303, in deserialize_keras_object list(custom_objects.items()))) File "keras2ncnn_tf2x\lib\site-packages\tensorflow_core\python\keras\engine\network.py", line 937, in from_config config, custom_objects) File "keras2ncnn_tf2x\lib\site-packages\tensorflow_core\python\keras\engine\network.py", line 1903, in reconstruct_from_config process_node(layer, node_data) File "keras2ncnn_tf2x\lib\site-packages\tensorflow_core\python\keras\engine\network.py", line 1851, in process_node output_tensors = layer(input_tensors, *kwargs) File "keras2ncnn_tf2x\lib\site-packages\tensorflow_core\python\keras\engine\base_layer.py", line 773, in call outputs = call_fn(cast_inputs, args, kwargs) File "keras2ncnn_tf2x\lib\site-packages\tensorflow_core\python\keras\layers\core.py", line 846, in call result = self.function(inputs, kwargs) File "G:\yolov4-tiny-keras-master\nets\yolo3_ghost_a1.py", line 494, in yolo_loss TypeError: list indices must be integers or slices, not list

The yolo_body have some function that not defined. Could you provide some links or script for me to be able to gather the model?

my net code is

def yolo_body(inputs, num_anchors, num_classes):

生成darknet53的主干模型

x = ZeroPadding2D(((1, 0), (1, 0)))(inputs)

x = DarknetConv2D_BN_Leaky(32, (3, 3), strides=(2, 2))(x) # 416 416 32 0.15

x = MaxPooling2D(pool_size=(2, 2), strides=(2, 2), padding='same')(x)

x = ZeroPadding2D(((1, 0), (1, 0)))(x)

x= qresblock_body(x, 48)

x = ZeroPadding2D(((1, 0), (1, 0)))(x)

x = DarknetConv2D_BN_Leaky(48, (3, 3), strides=(2, 2))(x)

x = MaxPooling2D(pool_size=(2, 2), strides=(2, 2), padding='same')(x)

x = qresblock_body(x,48)# 32 +0.05mb

x, _ = noresblock_body(x, 48)

x, _= qresblock_body(x, 80) # 64 +0.0 mb

x, _ = noresblock_body(x, 80)

x , route_1= qresblock_body(x, 160) # 128 +0.2mb

x, _ = noresblock_body(x, 160) # 88888 #256 +0.98mb

x, _ = resblock_body(x, 224) # 512 +3.95mb

x2 = DarknetConv2D_BN_Leaky(320, (1,1))(x)

aaa = x2

x2 = depthConv2D_BN_Leaky(640, (3, 3))(x) # 1024

x2 = DarknetConv2D_BN_Leaky(224, (1, 1))(x) aaa=x2 x2 = DP((5,5))(x2) x2 = Concatenate()([x2,aaa])

x2 = DarknetConv2D_BN_Leaky(224, (1, 1))(x2) # 256 ccc = x2 y1 = DP((5,5))(x2) hhh=y1 y1 = Concatenate()([y1, x2]) y1 = DarknetConv2D(num_anchors * (num_classes + 5), (1, 1))(y1)

x2 = compose(

DarknetConv2D_BN_Leaky(128, (1, 1)),

UpSampling2D(2))(ccc) # output 256

x2 = DarknetConv2D_BN_Leaky(112, (1, 1))(ccc) x2 = UpSampling2D(2)(x2)

x2 = Lambda(my_upsampling, arguments={'img_w': 26, 'img_h': 26})(x2)

y2 = Concatenate()([x2, route_1]) y2 = DarknetConv2D_BN_Leaky(112, (1,1))(y2) ddd = y2 y2 = DP((5,5))(y2) y2 = Concatenate()([y2,ddd]) y2 = DarknetConv2D(num_anchors * (num_classes + 5), (1, 1))(y2) return Model(inputs, [y1, y2])

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

caoyuanjie1996 commented 4 years ago

https://github.com/bubbliiiing/yolov4-tiny-keras/blob/master/train.py i use code is copy this github,but my net is changed,i just change the NET. i just change yolo_body.thank you my friend 。

caoyuanjie1996 commented 4 years ago

hei,friend,Do you have some problem?

azeme1 commented 4 years ago

Hello, 1) I was not able to convert the whole model. The Lambda function should be implemented yourself in C++ 2) I have cut the model head (see https://github.com/azeme1/keras2ncnn/blob/main/_step_by_step/yolov4-tiny-keras-custom.ipynb) 3) I have update the scripts for the multi output support (this code was written some month ago) 4) I see the possibility activations fusion in to the convolutions. 5) I also need to take a look to the NCNN syntax changed and prepare python binding for the verification.

tf_a85_fixed tf_a85_original Could you try the conversion tool now?

caoyuanjie1996 commented 4 years ago

grid为网格结构(13,13,1,2),raw_pred为尚未处理的预测结果(m,13,13,3,85)

NameError: name 'yolo_head' is not defined 还是报这个错误

caoyuanjie1996 commented 4 years ago

this code can turn keras2ncnn,but param not have yolov3detect(output) ,maybe it for you is useful https://github.com/MarsTechHAN/keras2ncnn

azeme1 commented 4 years ago

According to the model the yolo_head is used inside the Lambda layer which cannot be converted from the keras converter. So you should take a look to yolov4-tiny-keras-custom.ipynb and remove the latest layer from you model.Only after that you can convert the model in to the NCNN. After that you should write the decoder and the NMS in C++. 26.10.2020, 12:55, "caoyuanjie1996" notifications@github.com: grid为网格结构(13,13,1,2),raw_pred为尚未处理的预测结果(m,13,13,3,85) NameError: name 'yolo_head' is not defined 还是报这个错误

—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.

azeme1 commented 4 years ago

The code from the https://github.com/MarsTechHAN/keras2ncnn do the same job with test c++ code and without layer fusionI just test this code it nice and only thing you should do that is add the last line to the config (https://github.com/Tencent/ncnn/blob/0f7e7bca0223bfa3600c08c808d2ded0a1cb3b04/benchmark/mobilenetv2_yolov3.param) ...Convolution conv2d_11 1 1 concatenate_5_blob conv2d_11_blob 0=21 1=1 2=1 3=1 4=-233 5=1 6=9408 11=1 12=1 13=1 Convolution conv2d_14 1 1 concatenate_7_blob conv2d_14_blob 0=21 1=1 2=1 3=1 4=-233 5=1 6=4704 11=1 12=1 13=1  ...Convolution conv2d_11 1 1 concatenate_5_blob conv2d_11_blob 0=21 1=1 2=1 3=1 4=-233 5=1 6=9408 11=1 12=1 13=1 Convolution conv2d_14 1 1 concatenate_7_blob conv2d_14_blob 0=21 1=1 2=1 3=1 4=-233 5=1 6=4704 11=1 12=1 13=1 Yolov3DetectionOutput    detection_out            2 1 conv2d_11_blob conv2d_14_blob output 1=3 2=3.000000e-01 -23304=12,2.000000e+01,3.700000e+01,4.900000e+01,9.400000e+01,7.300000e+01,2.010000e+02,1.430000e+02,2.650000e+02,1.530000e+02,1.210000e+02,2.800000e+02,2.790000e+02 -23305=6,1077936128,1082130432,1084227584,0,1065353216,1073741824 -23306=2,3.200000e+01,1.600000e+01 But I do not sure that this approach is working - I neet to take a look into the code carefuly 26.10.2020, 12:58, "caoyuanjie1996" notifications@github.com: this code can turn keras2ncnn,but param not have yolov3detect(output) ,maybe it for you is useful https://github.com/MarsTechHAN/keras2ncnn

—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.

caoyuanjie1996 commented 4 years ago

when i conve tf_a85_fix.h5 FailedPreconditionError (see above for traceback): Error while reading resource variable conv2d_1_1/kernel from Container: localhost. This could mean that the variable was uninitialized. Not found: Container localhost does not exist. ( Could not find resource: localhost/conv2d_1_1/kernel) [[node conv2d_1_1/kernel/Read/ReadVariableOp (defined at G:\keras2ncnn-main\optimization\optimize_graph.py:53) ]]

caoyuanjie1996 commented 4 years ago

I added the last layer, but nothing can be recognized in ncnn, but can be recognized normally in keras framework. I don’t know if it’s the last layer that can’t be customized. It has to be in .h5. I don’t know how to transfer it.

azeme1 commented 4 years ago

I planed this wednesday to run unit test over the model to verify it correctness (the solution was checked for with the unit tests several months ago - I not sure the everything is still working)26.10.2020, 13:49, "azemel@tut.by" azemel@tut.by:Strange enough.Could you take a look to the my conversion?   26.10.2020, 13:45, "caoyuanjie1996" notifications@github.com: when i conve tf_a85_fix.h5FailedPreconditionError (see above for traceback): Error while reading resource variable conv2d_1_1/kernel from Container: localhost. This could mean that the variable was uninitialized. Not found: Container localhost does not exist. (Could not find resource: localhost/conv2d_1_1/kernel)[[node conv2d_1_1/kernel/Read/ReadVariableOp (defined at G:\keras2ncnn-main\optimization\optimize_graph.py:53) ]]—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.

caoyuanjie1996 commented 4 years ago

ok ,thanks i have used your conversion and get Error while reading resource variable conv2d_1_1/kernel from Container: localhost. This could mean that the variable was uninitialized. Not found: Container localhost does not exist. (Could not find resource: localhost/conv2d_1_1/kernel)[[node conv2d_1_1/kernel/Read/ReadVariableOp (defined at G:\keras2ncnn-main\optimization\optimize_graph.py:53) ]] it could not convert .

azeme1 commented 4 years ago

  Lets seehttps://github.com/Tencent/ncnn/wiki/operation-param-weight-table here is the sources https://github.com/bubbliiiing/yolov4-tiny-keras/blob/master/nets/loss.pythe tips should be here def yolo_loss(args, anchors, num_classes, ignore_thresh=.5, label_smoothing=0.1, print_loss=False): Yolov3DetectionOutput0num_class20  1num_box5  2confidence_threshold0.01f  3num_threshold0.45f  4biases[]   5mask[]  6anchors_scale[] you line should beYolov3DetectionOutput yolo/conv4 yolo/conv5 output1=3 (Number of classes you use)3 = num_threshold (the conf threshold you use)2=3.000000e-01 (the conf threshold you use)-23304=12,2.000000e+01,3.700000e+01,4.900000e+01,9.400000e+01,7.300000e+01,2.010000e+02,1.430000e+02,2.650000e+02,1.530000e+02,1.210000e+02,2.800000e+02,2.790000e+02-23305=6,1077936128,1082130432,1084227584,0,1065353216,1073741824 -23306=2,3.200000e+01,1.600000e+0126.10.2020, 13:48, "caoyuanjie1996" notifications@github.com: I added the last layer, but nothing can be recognized in ncnn, but can be recognized normally in keras framework. I don’t know if it’s the last layer that can’t be customized. It has to be in .h5. I don’t know how to transfer it.

—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.

azeme1 commented 4 years ago

 But I have sent you the converted model (you can find it in archive )What version of tensorflow and keras do you use?import kerasimport tensorflowprint(keras.version, tensorflow.version)26.10.2020, 13:55, "caoyuanjie1996" notifications@github.com: ok ,thanks i have used your conversion and get Error while reading resource variable conv2d_1_1/kernel from Container: localhost. This could mean that the variable was uninitialized. Not found: Container localhost does not exist. (Could not find resource: localhost/conv2d_1_1/kernel)[[node conv2d_1_1/kernel/Read/ReadVariableOp (defined at G:\keras2ncnn-main\optimization\optimize_graph.py:53) ]] it could not convert .

—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.

caoyuanjie1996 commented 4 years ago

tensorflow-gpu1.13 keras==2.2.4

caoyuanjie1996 commented 4 years ago

if my classes is (face , face_mask),my class=2or3?,my anchos is (12,16, 22,29, 39,50, 69,94, 123,168, 255,342)i don know what the means -23304,-23305 and-23306 if i should add yolov3detectionoutput Yolov3DetectionOutput detection_out 2 1 conv2d_11_blob conv2d_14_blob output 1=3 2=3.000000e-01 -23304=12,1.200000e+01,1.600000e+01,2.200000e+01,2.900000e+01,3.900000e+01,5.00000e+01,6.900000e+01,9.400000e+01,1.230000e+02,1.680000e+02,2.550000e+02,3.420000e+02 -23305=6,3.000000,4.000000,5.000000,1.000000,2.000000,3.000000 -23306=2,3.200000e+01,1.600000e+01

azeme1 commented 4 years ago

https://github.com/Tencent/ncnn/blob/5afd318b86c05e932f0cb11b050a21a5cb39d7f0/src/layer/yolov3detectionoutput.cpp my class= 3 (face, face_mask, background)The meaning of -23304 -233 -special value 04 - parameter orderafter the '=' sign-23304=12, (the number of items)1.200000e+01, (1)1.600000e+01, (2)2.200000e+01, (3)2.900000e+01, (4)3.900000e+01, (5)5.00000e+01, (6)6.900000e+01, (7)9.400000e+01, (8)1.230000e+02, (9)1.680000e+02, (10)2.550000e+02, (11)3.420000e+02 (12) the meaning is unclear  :( Enjoy (But not sure that there is correspondence of your repository with the NCNN)  -23306=2,3.200000e+01,1.600000e+01 int net_w = (int)(anchors_scale[b] w);int net_h = (int)(anchors_scale[b] h);  26.10.2020, 14:28, "caoyuanjie1996" notifications@github.com: if my classes is (face , face_mask),my class=2or3?,my anchos is (12,16, 22,29, 39,50, 69,94, 123,168, 255,342)i don know what the means -23304,-23305 and-23306 if i should add yolov3detectionoutput Yolov3DetectionOutput detection_out 2 1 conv2d_11_blob conv2d_14_blob output 1=3 2=3.000000e-01 -23304=12,1.200000e+01,1.600000e+01,2.200000e+01,2.900000e+01,3.900000e+01,5.00000e+01,6.900000e+01,9.400000e+01,1.230000e+02,1.680000e+02,2.550000e+02,3.420000e+02 -23305=6,3.000000,4.000000,5.000000,1.000000,2.000000,3.000000 -23306=2,3.200000e+01,1.600000e+01

—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.

caoyuanjie1996 commented 4 years ago

i dont know why -23305=6,1077936128,1082130432,1084227584,0,1065353216,1073741824 . if my output is (1313,2626),if my -23306=2,3.200000e+01,1.600000e+01? thank you

caoyuanjie1996 commented 4 years ago

i am a Vegetable Chicken

azeme1 commented 4 years ago

I am not familiar with yolov4 and have no Idea what is the -23305But the is clear-23306=2,3.200000e+01,1.600000e+01two value s-23306=23.200000e+01,1.600000e+01 that is rescaling factors I can help you only after wednesday and will use you model as unit test for the script verification26.10.2020, 15:22, "caoyuanjie1996" notifications@github.com: i dont know why -23305=6,1077936128,1082130432,1084227584,0,1065353216,1073741824 . if my output is (1313,2626),if my -23306=2,3.200000e+01,1.600000e+01? thank you

—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.

caoyuanjie1996 commented 4 years ago

very thank you,very thank you.my Savior

azeme1 commented 4 years ago

What you can do that use convertable model and retrain it for you classes26.10.2020, 15:33, "caoyuanjie1996" notifications@github.com: very thank you,very thank you.my Savior

—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.

caoyuanjie1996 commented 4 years ago

other convertable model i am not good at

azeme1 commented 4 years ago

Hello. Finally I get the working unit test code I succeed to get the following conversion of your model (without yolov4 decoder) The errors of the conversion is bellow. I can not prepare the C++ code for the yolov4 decoder but can covert the keras one to numpy

====================By Layer Comparison ==================== Layer - data :: 0.0 < 1e-05 True Layer - zero_padding2d_1 :: 0.0 < 1e-05 True Layer - conv2d_1 :: 2.7719025297301414e-08 < 1e-05 True Layer - batch_normalization_1 :: 3.1467970984522253e-07 < 1e-05 True Layer - leaky_re_lu_1 :: 1.7761288972906186e-07 < 1e-05 True Layer - zero_padding2d_2 :: 1.7591723633358924e-07 < 1e-05 True Layer - conv2d_2 :: 2.019601652136771e-06 < 1e-05 True Layer - batch_normalization_2 :: 1.1189669066880015e-06 < 1e-05 True Layer - leaky_re_lu_2 :: 3.856154933146172e-07 < 1e-05 True Layer - conv2d_3 :: 5.133868853590684e-06 < 1e-05 True Layer - batch_normalization_3 :: 2.77524327430001e-06 < 1e-05 True Layer - leaky_re_lu_3 :: 7.60518503284402e-07 < 1e-05 True Layer - ncnn_split_1 :: 7.60518503284402e-07 < 1e-05 True Layer - ncnn_split_1 :: 7.60518503284402e-07 < 1e-05 True Layer - conv2d_4 :: 1.6176793451450067e-06 < 1e-05 True Layer - batch_normalization_4 :: 2.0655750176956644e-06 < 1e-05 True Layer - leaky_re_lu_4 :: 6.433331236621598e-07 < 1e-05 True Layer - ncnn_split_2 :: 6.433331236621598e-07 < 1e-05 True Layer - ncnn_split_2 :: 6.433331236621598e-07 < 1e-05 True Layer - depthwise_conv2d_1 :: 4.87494673961919e-07 < 1e-05 True Layer - batch_normalization_5 :: 1.692726641522313e-06 < 1e-05 True Layer - leaky_re_lu_5 :: 8.758530043451174e-07 < 1e-05 True Layer - concatenate_1 :: 7.595931492687669e-07 < 1e-05 True Layer - add_1 :: 1.2817714605262154e-06 < 1e-05 True Layer - max_pooling2d_1 :: 1.8782970983011182e-06 < 1e-05 True Layer - conv2d_5 :: 5.95591291130404e-06 < 1e-05 True Layer - batch_normalization_6 :: 1.617687757970998e-06 < 1e-05 True Layer - leaky_re_lu_6 :: 7.551718681497732e-07 < 1e-05 True Layer - ncnn_split_3 :: 7.551718681497732e-07 < 1e-05 True Layer - ncnn_split_3 :: 7.551718681497732e-07 < 1e-05 True Layer - conv2d_6 :: 1.6052309774750029e-06 < 1e-05 True Layer - batch_normalization_7 :: 1.3952325161881163e-06 < 1e-05 True Layer - leaky_re_lu_7 :: 8.101013690975378e-07 < 1e-05 True Layer - ncnn_split_4 :: 8.101013690975378e-07 < 1e-05 True Layer - ncnn_split_4 :: 8.101013690975378e-07 < 1e-05 True Layer - depthwise_conv2d_2 :: 5.339600761544716e-07 < 1e-05 True Layer - batch_normalization_8 :: 1.7183957652378012e-06 < 1e-05 True Layer - leaky_re_lu_8 :: 8.794532959655044e-07 < 1e-05 True Layer - concatenate_2 :: 8.447773325315211e-07 < 1e-05 True Layer - add_2 :: 1.3502601632353617e-06 < 1e-05 True Layer - max_pooling2d_2 :: 1.6810049601190258e-06 < 1e-05 True Layer - conv2d_7 :: 2.173660277549061e-06 < 1e-05 True Layer - batch_normalization_9 :: 1.3040739759162534e-06 < 1e-05 True Layer - leaky_re_lu_9 :: 6.469238087447593e-07 < 1e-05 True Layer - ncnn_split_5 :: 6.469238087447593e-07 < 1e-05 True Layer - ncnn_split_5 :: 6.469238087447593e-07 < 1e-05 True Layer - conv2d_8 :: 1.653492631703557e-06 < 1e-05 True Layer - batch_normalization_10 :: 1.103679778680089e-06 < 1e-05 True Layer - leaky_re_lu_10 :: 5.906752562623296e-07 < 1e-05 True Layer - ncnn_split_6 :: 5.906752562623296e-07 < 1e-05 True Layer - ncnn_split_6 :: 5.906752562623296e-07 < 1e-05 True Layer - ncnn_split_6 :: 5.906752562623296e-07 < 1e-05 True Layer - depthwise_conv2d_3 :: 3.415074445456412e-07 < 1e-05 True Layer - batch_normalization_11 :: 1.342479549748532e-06 < 1e-05 True Layer - leaky_re_lu_11 :: 7.670323043384997e-07 < 1e-05 True Layer - concatenate_3 :: 6.788536666135769e-07 < 1e-05 True Layer - add_3 :: 1.1186084520886652e-06 < 1e-05 True Layer - max_pooling2d_3 :: 1.3895399888497195e-06 < 1e-05 True Layer - conv2d_9 :: 1.5472446648345795e-06 < 1e-05 True Layer - batch_normalization_12 :: 8.29787722977926e-07 < 1e-05 True Layer - leaky_re_lu_12 :: 4.5253088387653406e-07 < 1e-05 True Layer - ncnn_split_7 :: 4.5253088387653406e-07 < 1e-05 True Layer - ncnn_split_7 :: 4.5253088387653406e-07 < 1e-05 True Layer - depthwise_conv2d_4 :: 2.086995607442077e-07 < 1e-05 True Layer - batch_normalization_13 :: 9.211674978359952e-07 < 1e-05 True Layer - leaky_re_lu_13 :: 4.992484718968626e-07 < 1e-05 True Layer - concatenate_4 :: 4.7588969209755305e-07 < 1e-05 True Layer - conv2d_10 :: 1.2717023309960496e-06 < 1e-05 True Layer - batch_normalization_14 :: 7.09312359958858e-07 < 1e-05 True Layer - leaky_re_lu_14 :: 4.0602327544547734e-07 < 1e-05 True Layer - ncnn_split_8 :: 4.0602327544547734e-07 < 1e-05 True Layer - ncnn_split_8 :: 4.0602327544547734e-07 < 1e-05 True Layer - ncnn_split_8 :: 4.0602327544547734e-07 < 1e-05 True Layer - conv2d_12 :: 6.922336410752905e-07 < 1e-05 True Layer - batch_normalization_16 :: 6.485657877419726e-07 < 1e-05 True Layer - leaky_re_lu_16 :: 3.694578367685608e-07 < 1e-05 True Layer - up_sampling2d_1 :: 3.694578367685608e-07 < 1e-05 True Layer - concatenate_6 :: 4.800666033588641e-07 < 1e-05 True Layer - conv2d_13 :: 1.3890481795897358e-06 < 1e-05 True Layer - batch_normalization_17 :: 6.505644023491186e-07 < 1e-05 True Layer - leaky_re_lu_17 :: 4.367289250239992e-07 < 1e-05 True Layer - ncnn_split_9 :: 4.367289250239992e-07 < 1e-05 True Layer - ncnn_split_9 :: 4.367289250239992e-07 < 1e-05 True Layer - depthwise_conv2d_5 :: 2.440696391659003e-07 < 1e-05 True Layer - depthwise_conv2d_6 :: 2.6398134878036217e-07 < 1e-05 True Layer - batch_normalization_15 :: 6.611363119191083e-07 < 1e-05 True Layer - batch_normalization_18 :: 7.656317393411882e-07 < 1e-05 True Layer - leaky_re_lu_15 :: 4.3142819095010054e-07 < 1e-05 True Layer - leaky_re_lu_18 :: 5.417263650997484e-07 < 1e-05 True Layer - concatenate_5 :: 4.187256763543701e-07 < 1e-05 True Layer - concatenate_7 :: 4.892275455858908e-07 < 1e-05 True Layer - conv2d_11 :: 1.523122136859456e-06 < 1e-05 True Layer - conv2d_14 :: 1.4454882375503075e-06 < 1e-05 True

azeme1 commented 3 years ago

Closed for no activity