web: hand the upscaler's activations to the chip that is running them

The WebGPU execution provider has no PReLU kernel. The model is 34 convolutions
with a PReLU after every one of them, so an export that took the GPU path was
split 33 times: each activation came off the chip to be activated on the
processor and went straight back, a 64-channel map in both directions, per tile.
A machine with a good graphics chip was not exporting any faster for having it.

PReLU(x) is exactly Relu(x) - slope * Relu(-x), and Relu, Neg, Mul and Sub the
provider does implement, so scripts/realesr-gpu.py writes the 33 activations out
as those four and drops the slopes nobody reads any more. The model file is the
output of that script, not the file as published.

One 256x256 tile through the model before and after, on a WebGPU session: the
runtime no longer reports nodes left off the preferred provider (it did, once,
before) and the processor path answers bit for bit what it answered before. The
warning itself cannot be switched off from here - env.logLevel is read when the
runtime module initialises, before any of this runs - so the graph was fixed
rather than the lines hidden.
This commit is contained in:
2026-09-23 09:02:53 +07:00
parent a2c12a2638
commit a0965101e1
3 changed files with 496 additions and 117 deletions
@@ -1,4 +1,4 @@
pytorch2.8.0:Ö‚©
pytorch2.8.0:Éò©
¬
input
body.0.weight
@@ -8,9 +8,18 @@
kernel_shape@@ *
pads@@@@ *
strides@@ 
V
/body.0/Conv_output_0
onnx::PRelu_242/body.1/PRelu_output_0 /body.1/PRelu"PRelu
U
/body.0/Conv_output_0/body.1/PRelu_output_0.pos/body.1/PRelu_output_0.pos"Relu
T
/body.0/Conv_output_0/body.1/PRelu_output_0.neg/body.1/PRelu_output_0.neg"Neg
\
/body.1/PRelu_output_0.neg/body.1/PRelu_output_0.relu/body.1/PRelu_output_0.relu"Relu
|
/body.1/PRelu_output_0.relu
onnx::PRelu_242__broadcast/body.1/PRelu_output_0.scaled/body.1/PRelu_output_0.scaled"Mul
g
/body.1/PRelu_output_0.pos
/body.1/PRelu_output_0.scaled/body.1/PRelu_output_0 /body.1/PRelu"Sub
½
/body.1/PRelu_output_0
body.2.weight
@@ -20,9 +29,18 @@ V
kernel_shape@@ *
pads@@@@ *
strides@@ 
V
/body.2/Conv_output_0
onnx::PRelu_243/body.3/PRelu_output_0 /body.3/PRelu"PRelu
U
/body.2/Conv_output_0/body.3/PRelu_output_0.pos/body.3/PRelu_output_0.pos"Relu
T
/body.2/Conv_output_0/body.3/PRelu_output_0.neg/body.3/PRelu_output_0.neg"Neg
\
/body.3/PRelu_output_0.neg/body.3/PRelu_output_0.relu/body.3/PRelu_output_0.relu"Relu
|
/body.3/PRelu_output_0.relu
onnx::PRelu_243__broadcast/body.3/PRelu_output_0.scaled/body.3/PRelu_output_0.scaled"Mul
g
/body.3/PRelu_output_0.pos
/body.3/PRelu_output_0.scaled/body.3/PRelu_output_0 /body.3/PRelu"Sub
½
/body.3/PRelu_output_0
body.4.weight
@@ -32,9 +50,18 @@ V
kernel_shape@@ *
pads@@@@ *
strides@@ 
V
/body.4/Conv_output_0
onnx::PRelu_244/body.5/PRelu_output_0 /body.5/PRelu"PRelu
U
/body.4/Conv_output_0/body.5/PRelu_output_0.pos/body.5/PRelu_output_0.pos"Relu
T
/body.4/Conv_output_0/body.5/PRelu_output_0.neg/body.5/PRelu_output_0.neg"Neg
\
/body.5/PRelu_output_0.neg/body.5/PRelu_output_0.relu/body.5/PRelu_output_0.relu"Relu
|
/body.5/PRelu_output_0.relu
onnx::PRelu_244__broadcast/body.5/PRelu_output_0.scaled/body.5/PRelu_output_0.scaled"Mul
g
/body.5/PRelu_output_0.pos
/body.5/PRelu_output_0.scaled/body.5/PRelu_output_0 /body.5/PRelu"Sub
½
/body.5/PRelu_output_0
body.6.weight
@@ -44,9 +71,18 @@ V
kernel_shape@@ *
pads@@@@ *
strides@@ 
V
/body.6/Conv_output_0
onnx::PRelu_245/body.7/PRelu_output_0 /body.7/PRelu"PRelu
U
/body.6/Conv_output_0/body.7/PRelu_output_0.pos/body.7/PRelu_output_0.pos"Relu
T
/body.6/Conv_output_0/body.7/PRelu_output_0.neg/body.7/PRelu_output_0.neg"Neg
\
/body.7/PRelu_output_0.neg/body.7/PRelu_output_0.relu/body.7/PRelu_output_0.relu"Relu
|
/body.7/PRelu_output_0.relu
onnx::PRelu_245__broadcast/body.7/PRelu_output_0.scaled/body.7/PRelu_output_0.scaled"Mul
g
/body.7/PRelu_output_0.pos
/body.7/PRelu_output_0.scaled/body.7/PRelu_output_0 /body.7/PRelu"Sub
½
/body.7/PRelu_output_0
body.8.weight
@@ -56,9 +92,18 @@ V
kernel_shape@@ *
pads@@@@ *
strides@@ 
V
/body.8/Conv_output_0
onnx::PRelu_246/body.9/PRelu_output_0 /body.9/PRelu"PRelu
U
/body.8/Conv_output_0/body.9/PRelu_output_0.pos/body.9/PRelu_output_0.pos"Relu
T
/body.8/Conv_output_0/body.9/PRelu_output_0.neg/body.9/PRelu_output_0.neg"Neg
\
/body.9/PRelu_output_0.neg/body.9/PRelu_output_0.relu/body.9/PRelu_output_0.relu"Relu
|
/body.9/PRelu_output_0.relu
onnx::PRelu_246__broadcast/body.9/PRelu_output_0.scaled/body.9/PRelu_output_0.scaled"Mul
g
/body.9/PRelu_output_0.pos
/body.9/PRelu_output_0.scaled/body.9/PRelu_output_0 /body.9/PRelu"Sub
Á
/body.9/PRelu_output_0
body.10.weight
@@ -68,9 +113,18 @@ V
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.10/Conv_output_0
onnx::PRelu_247/body.11/PRelu_output_0/body.11/PRelu"PRelu
X
/body.10/Conv_output_0/body.11/PRelu_output_0.pos/body.11/PRelu_output_0.pos"Relu
W
/body.10/Conv_output_0/body.11/PRelu_output_0.neg/body.11/PRelu_output_0.neg"Neg
_
/body.11/PRelu_output_0.neg/body.11/PRelu_output_0.relu/body.11/PRelu_output_0.relu"Relu

/body.11/PRelu_output_0.relu
onnx::PRelu_247__broadcast/body.11/PRelu_output_0.scaled/body.11/PRelu_output_0.scaled"Mul
k
/body.11/PRelu_output_0.pos
/body.11/PRelu_output_0.scaled/body.11/PRelu_output_0/body.11/PRelu"Sub
Â
/body.11/PRelu_output_0
body.12.weight
@@ -80,9 +134,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.12/Conv_output_0
onnx::PRelu_248/body.13/PRelu_output_0/body.13/PRelu"PRelu
X
/body.12/Conv_output_0/body.13/PRelu_output_0.pos/body.13/PRelu_output_0.pos"Relu
W
/body.12/Conv_output_0/body.13/PRelu_output_0.neg/body.13/PRelu_output_0.neg"Neg
_
/body.13/PRelu_output_0.neg/body.13/PRelu_output_0.relu/body.13/PRelu_output_0.relu"Relu

/body.13/PRelu_output_0.relu
onnx::PRelu_248__broadcast/body.13/PRelu_output_0.scaled/body.13/PRelu_output_0.scaled"Mul
k
/body.13/PRelu_output_0.pos
/body.13/PRelu_output_0.scaled/body.13/PRelu_output_0/body.13/PRelu"Sub
Â
/body.13/PRelu_output_0
body.14.weight
@@ -92,9 +155,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.14/Conv_output_0
onnx::PRelu_249/body.15/PRelu_output_0/body.15/PRelu"PRelu
X
/body.14/Conv_output_0/body.15/PRelu_output_0.pos/body.15/PRelu_output_0.pos"Relu
W
/body.14/Conv_output_0/body.15/PRelu_output_0.neg/body.15/PRelu_output_0.neg"Neg
_
/body.15/PRelu_output_0.neg/body.15/PRelu_output_0.relu/body.15/PRelu_output_0.relu"Relu

/body.15/PRelu_output_0.relu
onnx::PRelu_249__broadcast/body.15/PRelu_output_0.scaled/body.15/PRelu_output_0.scaled"Mul
k
/body.15/PRelu_output_0.pos
/body.15/PRelu_output_0.scaled/body.15/PRelu_output_0/body.15/PRelu"Sub
Â
/body.15/PRelu_output_0
body.16.weight
@@ -104,9 +176,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.16/Conv_output_0
onnx::PRelu_250/body.17/PRelu_output_0/body.17/PRelu"PRelu
X
/body.16/Conv_output_0/body.17/PRelu_output_0.pos/body.17/PRelu_output_0.pos"Relu
W
/body.16/Conv_output_0/body.17/PRelu_output_0.neg/body.17/PRelu_output_0.neg"Neg
_
/body.17/PRelu_output_0.neg/body.17/PRelu_output_0.relu/body.17/PRelu_output_0.relu"Relu

/body.17/PRelu_output_0.relu
onnx::PRelu_250__broadcast/body.17/PRelu_output_0.scaled/body.17/PRelu_output_0.scaled"Mul
k
/body.17/PRelu_output_0.pos
/body.17/PRelu_output_0.scaled/body.17/PRelu_output_0/body.17/PRelu"Sub
Â
/body.17/PRelu_output_0
body.18.weight
@@ -116,9 +197,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.18/Conv_output_0
onnx::PRelu_251/body.19/PRelu_output_0/body.19/PRelu"PRelu
X
/body.18/Conv_output_0/body.19/PRelu_output_0.pos/body.19/PRelu_output_0.pos"Relu
W
/body.18/Conv_output_0/body.19/PRelu_output_0.neg/body.19/PRelu_output_0.neg"Neg
_
/body.19/PRelu_output_0.neg/body.19/PRelu_output_0.relu/body.19/PRelu_output_0.relu"Relu

/body.19/PRelu_output_0.relu
onnx::PRelu_251__broadcast/body.19/PRelu_output_0.scaled/body.19/PRelu_output_0.scaled"Mul
k
/body.19/PRelu_output_0.pos
/body.19/PRelu_output_0.scaled/body.19/PRelu_output_0/body.19/PRelu"Sub
Â
/body.19/PRelu_output_0
body.20.weight
@@ -128,9 +218,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.20/Conv_output_0
onnx::PRelu_252/body.21/PRelu_output_0/body.21/PRelu"PRelu
X
/body.20/Conv_output_0/body.21/PRelu_output_0.pos/body.21/PRelu_output_0.pos"Relu
W
/body.20/Conv_output_0/body.21/PRelu_output_0.neg/body.21/PRelu_output_0.neg"Neg
_
/body.21/PRelu_output_0.neg/body.21/PRelu_output_0.relu/body.21/PRelu_output_0.relu"Relu

/body.21/PRelu_output_0.relu
onnx::PRelu_252__broadcast/body.21/PRelu_output_0.scaled/body.21/PRelu_output_0.scaled"Mul
k
/body.21/PRelu_output_0.pos
/body.21/PRelu_output_0.scaled/body.21/PRelu_output_0/body.21/PRelu"Sub
Â
/body.21/PRelu_output_0
body.22.weight
@@ -140,9 +239,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.22/Conv_output_0
onnx::PRelu_253/body.23/PRelu_output_0/body.23/PRelu"PRelu
X
/body.22/Conv_output_0/body.23/PRelu_output_0.pos/body.23/PRelu_output_0.pos"Relu
W
/body.22/Conv_output_0/body.23/PRelu_output_0.neg/body.23/PRelu_output_0.neg"Neg
_
/body.23/PRelu_output_0.neg/body.23/PRelu_output_0.relu/body.23/PRelu_output_0.relu"Relu

/body.23/PRelu_output_0.relu
onnx::PRelu_253__broadcast/body.23/PRelu_output_0.scaled/body.23/PRelu_output_0.scaled"Mul
k
/body.23/PRelu_output_0.pos
/body.23/PRelu_output_0.scaled/body.23/PRelu_output_0/body.23/PRelu"Sub
Â
/body.23/PRelu_output_0
body.24.weight
@@ -152,9 +260,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.24/Conv_output_0
onnx::PRelu_254/body.25/PRelu_output_0/body.25/PRelu"PRelu
X
/body.24/Conv_output_0/body.25/PRelu_output_0.pos/body.25/PRelu_output_0.pos"Relu
W
/body.24/Conv_output_0/body.25/PRelu_output_0.neg/body.25/PRelu_output_0.neg"Neg
_
/body.25/PRelu_output_0.neg/body.25/PRelu_output_0.relu/body.25/PRelu_output_0.relu"Relu

/body.25/PRelu_output_0.relu
onnx::PRelu_254__broadcast/body.25/PRelu_output_0.scaled/body.25/PRelu_output_0.scaled"Mul
k
/body.25/PRelu_output_0.pos
/body.25/PRelu_output_0.scaled/body.25/PRelu_output_0/body.25/PRelu"Sub
Â
/body.25/PRelu_output_0
body.26.weight
@@ -164,9 +281,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.26/Conv_output_0
onnx::PRelu_255/body.27/PRelu_output_0/body.27/PRelu"PRelu
X
/body.26/Conv_output_0/body.27/PRelu_output_0.pos/body.27/PRelu_output_0.pos"Relu
W
/body.26/Conv_output_0/body.27/PRelu_output_0.neg/body.27/PRelu_output_0.neg"Neg
_
/body.27/PRelu_output_0.neg/body.27/PRelu_output_0.relu/body.27/PRelu_output_0.relu"Relu

/body.27/PRelu_output_0.relu
onnx::PRelu_255__broadcast/body.27/PRelu_output_0.scaled/body.27/PRelu_output_0.scaled"Mul
k
/body.27/PRelu_output_0.pos
/body.27/PRelu_output_0.scaled/body.27/PRelu_output_0/body.27/PRelu"Sub
Â
/body.27/PRelu_output_0
body.28.weight
@@ -176,9 +302,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.28/Conv_output_0
onnx::PRelu_256/body.29/PRelu_output_0/body.29/PRelu"PRelu
X
/body.28/Conv_output_0/body.29/PRelu_output_0.pos/body.29/PRelu_output_0.pos"Relu
W
/body.28/Conv_output_0/body.29/PRelu_output_0.neg/body.29/PRelu_output_0.neg"Neg
_
/body.29/PRelu_output_0.neg/body.29/PRelu_output_0.relu/body.29/PRelu_output_0.relu"Relu

/body.29/PRelu_output_0.relu
onnx::PRelu_256__broadcast/body.29/PRelu_output_0.scaled/body.29/PRelu_output_0.scaled"Mul
k
/body.29/PRelu_output_0.pos
/body.29/PRelu_output_0.scaled/body.29/PRelu_output_0/body.29/PRelu"Sub
Â
/body.29/PRelu_output_0
body.30.weight
@@ -188,9 +323,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.30/Conv_output_0
onnx::PRelu_257/body.31/PRelu_output_0/body.31/PRelu"PRelu
X
/body.30/Conv_output_0/body.31/PRelu_output_0.pos/body.31/PRelu_output_0.pos"Relu
W
/body.30/Conv_output_0/body.31/PRelu_output_0.neg/body.31/PRelu_output_0.neg"Neg
_
/body.31/PRelu_output_0.neg/body.31/PRelu_output_0.relu/body.31/PRelu_output_0.relu"Relu

/body.31/PRelu_output_0.relu
onnx::PRelu_257__broadcast/body.31/PRelu_output_0.scaled/body.31/PRelu_output_0.scaled"Mul
k
/body.31/PRelu_output_0.pos
/body.31/PRelu_output_0.scaled/body.31/PRelu_output_0/body.31/PRelu"Sub
Â
/body.31/PRelu_output_0
body.32.weight
@@ -200,9 +344,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.32/Conv_output_0
onnx::PRelu_258/body.33/PRelu_output_0/body.33/PRelu"PRelu
X
/body.32/Conv_output_0/body.33/PRelu_output_0.pos/body.33/PRelu_output_0.pos"Relu
W
/body.32/Conv_output_0/body.33/PRelu_output_0.neg/body.33/PRelu_output_0.neg"Neg
_
/body.33/PRelu_output_0.neg/body.33/PRelu_output_0.relu/body.33/PRelu_output_0.relu"Relu

/body.33/PRelu_output_0.relu
onnx::PRelu_258__broadcast/body.33/PRelu_output_0.scaled/body.33/PRelu_output_0.scaled"Mul
k
/body.33/PRelu_output_0.pos
/body.33/PRelu_output_0.scaled/body.33/PRelu_output_0/body.33/PRelu"Sub
Â
/body.33/PRelu_output_0
body.34.weight
@@ -212,9 +365,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.34/Conv_output_0
onnx::PRelu_259/body.35/PRelu_output_0/body.35/PRelu"PRelu
X
/body.34/Conv_output_0/body.35/PRelu_output_0.pos/body.35/PRelu_output_0.pos"Relu
W
/body.34/Conv_output_0/body.35/PRelu_output_0.neg/body.35/PRelu_output_0.neg"Neg
_
/body.35/PRelu_output_0.neg/body.35/PRelu_output_0.relu/body.35/PRelu_output_0.relu"Relu

/body.35/PRelu_output_0.relu
onnx::PRelu_259__broadcast/body.35/PRelu_output_0.scaled/body.35/PRelu_output_0.scaled"Mul
k
/body.35/PRelu_output_0.pos
/body.35/PRelu_output_0.scaled/body.35/PRelu_output_0/body.35/PRelu"Sub
Â
/body.35/PRelu_output_0
body.36.weight
@@ -224,9 +386,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.36/Conv_output_0
onnx::PRelu_260/body.37/PRelu_output_0/body.37/PRelu"PRelu
X
/body.36/Conv_output_0/body.37/PRelu_output_0.pos/body.37/PRelu_output_0.pos"Relu
W
/body.36/Conv_output_0/body.37/PRelu_output_0.neg/body.37/PRelu_output_0.neg"Neg
_
/body.37/PRelu_output_0.neg/body.37/PRelu_output_0.relu/body.37/PRelu_output_0.relu"Relu

/body.37/PRelu_output_0.relu
onnx::PRelu_260__broadcast/body.37/PRelu_output_0.scaled/body.37/PRelu_output_0.scaled"Mul
k
/body.37/PRelu_output_0.pos
/body.37/PRelu_output_0.scaled/body.37/PRelu_output_0/body.37/PRelu"Sub
Â
/body.37/PRelu_output_0
body.38.weight
@@ -236,9 +407,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.38/Conv_output_0
onnx::PRelu_261/body.39/PRelu_output_0/body.39/PRelu"PRelu
X
/body.38/Conv_output_0/body.39/PRelu_output_0.pos/body.39/PRelu_output_0.pos"Relu
W
/body.38/Conv_output_0/body.39/PRelu_output_0.neg/body.39/PRelu_output_0.neg"Neg
_
/body.39/PRelu_output_0.neg/body.39/PRelu_output_0.relu/body.39/PRelu_output_0.relu"Relu

/body.39/PRelu_output_0.relu
onnx::PRelu_261__broadcast/body.39/PRelu_output_0.scaled/body.39/PRelu_output_0.scaled"Mul
k
/body.39/PRelu_output_0.pos
/body.39/PRelu_output_0.scaled/body.39/PRelu_output_0/body.39/PRelu"Sub
Â
/body.39/PRelu_output_0
body.40.weight
@@ -248,9 +428,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.40/Conv_output_0
onnx::PRelu_262/body.41/PRelu_output_0/body.41/PRelu"PRelu
X
/body.40/Conv_output_0/body.41/PRelu_output_0.pos/body.41/PRelu_output_0.pos"Relu
W
/body.40/Conv_output_0/body.41/PRelu_output_0.neg/body.41/PRelu_output_0.neg"Neg
_
/body.41/PRelu_output_0.neg/body.41/PRelu_output_0.relu/body.41/PRelu_output_0.relu"Relu

/body.41/PRelu_output_0.relu
onnx::PRelu_262__broadcast/body.41/PRelu_output_0.scaled/body.41/PRelu_output_0.scaled"Mul
k
/body.41/PRelu_output_0.pos
/body.41/PRelu_output_0.scaled/body.41/PRelu_output_0/body.41/PRelu"Sub
Â
/body.41/PRelu_output_0
body.42.weight
@@ -260,9 +449,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.42/Conv_output_0
onnx::PRelu_263/body.43/PRelu_output_0/body.43/PRelu"PRelu
X
/body.42/Conv_output_0/body.43/PRelu_output_0.pos/body.43/PRelu_output_0.pos"Relu
W
/body.42/Conv_output_0/body.43/PRelu_output_0.neg/body.43/PRelu_output_0.neg"Neg
_
/body.43/PRelu_output_0.neg/body.43/PRelu_output_0.relu/body.43/PRelu_output_0.relu"Relu

/body.43/PRelu_output_0.relu
onnx::PRelu_263__broadcast/body.43/PRelu_output_0.scaled/body.43/PRelu_output_0.scaled"Mul
k
/body.43/PRelu_output_0.pos
/body.43/PRelu_output_0.scaled/body.43/PRelu_output_0/body.43/PRelu"Sub
Â
/body.43/PRelu_output_0
body.44.weight
@@ -272,9 +470,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.44/Conv_output_0
onnx::PRelu_264/body.45/PRelu_output_0/body.45/PRelu"PRelu
X
/body.44/Conv_output_0/body.45/PRelu_output_0.pos/body.45/PRelu_output_0.pos"Relu
W
/body.44/Conv_output_0/body.45/PRelu_output_0.neg/body.45/PRelu_output_0.neg"Neg
_
/body.45/PRelu_output_0.neg/body.45/PRelu_output_0.relu/body.45/PRelu_output_0.relu"Relu

/body.45/PRelu_output_0.relu
onnx::PRelu_264__broadcast/body.45/PRelu_output_0.scaled/body.45/PRelu_output_0.scaled"Mul
k
/body.45/PRelu_output_0.pos
/body.45/PRelu_output_0.scaled/body.45/PRelu_output_0/body.45/PRelu"Sub
Â
/body.45/PRelu_output_0
body.46.weight
@@ -284,9 +491,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.46/Conv_output_0
onnx::PRelu_265/body.47/PRelu_output_0/body.47/PRelu"PRelu
X
/body.46/Conv_output_0/body.47/PRelu_output_0.pos/body.47/PRelu_output_0.pos"Relu
W
/body.46/Conv_output_0/body.47/PRelu_output_0.neg/body.47/PRelu_output_0.neg"Neg
_
/body.47/PRelu_output_0.neg/body.47/PRelu_output_0.relu/body.47/PRelu_output_0.relu"Relu

/body.47/PRelu_output_0.relu
onnx::PRelu_265__broadcast/body.47/PRelu_output_0.scaled/body.47/PRelu_output_0.scaled"Mul
k
/body.47/PRelu_output_0.pos
/body.47/PRelu_output_0.scaled/body.47/PRelu_output_0/body.47/PRelu"Sub
Â
/body.47/PRelu_output_0
body.48.weight
@@ -296,9 +512,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.48/Conv_output_0
onnx::PRelu_266/body.49/PRelu_output_0/body.49/PRelu"PRelu
X
/body.48/Conv_output_0/body.49/PRelu_output_0.pos/body.49/PRelu_output_0.pos"Relu
W
/body.48/Conv_output_0/body.49/PRelu_output_0.neg/body.49/PRelu_output_0.neg"Neg
_
/body.49/PRelu_output_0.neg/body.49/PRelu_output_0.relu/body.49/PRelu_output_0.relu"Relu

/body.49/PRelu_output_0.relu
onnx::PRelu_266__broadcast/body.49/PRelu_output_0.scaled/body.49/PRelu_output_0.scaled"Mul
k
/body.49/PRelu_output_0.pos
/body.49/PRelu_output_0.scaled/body.49/PRelu_output_0/body.49/PRelu"Sub
Â
/body.49/PRelu_output_0
body.50.weight
@@ -308,9 +533,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.50/Conv_output_0
onnx::PRelu_267/body.51/PRelu_output_0/body.51/PRelu"PRelu
X
/body.50/Conv_output_0/body.51/PRelu_output_0.pos/body.51/PRelu_output_0.pos"Relu
W
/body.50/Conv_output_0/body.51/PRelu_output_0.neg/body.51/PRelu_output_0.neg"Neg
_
/body.51/PRelu_output_0.neg/body.51/PRelu_output_0.relu/body.51/PRelu_output_0.relu"Relu

/body.51/PRelu_output_0.relu
onnx::PRelu_267__broadcast/body.51/PRelu_output_0.scaled/body.51/PRelu_output_0.scaled"Mul
k
/body.51/PRelu_output_0.pos
/body.51/PRelu_output_0.scaled/body.51/PRelu_output_0/body.51/PRelu"Sub
Â
/body.51/PRelu_output_0
body.52.weight
@@ -320,9 +554,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.52/Conv_output_0
onnx::PRelu_268/body.53/PRelu_output_0/body.53/PRelu"PRelu
X
/body.52/Conv_output_0/body.53/PRelu_output_0.pos/body.53/PRelu_output_0.pos"Relu
W
/body.52/Conv_output_0/body.53/PRelu_output_0.neg/body.53/PRelu_output_0.neg"Neg
_
/body.53/PRelu_output_0.neg/body.53/PRelu_output_0.relu/body.53/PRelu_output_0.relu"Relu

/body.53/PRelu_output_0.relu
onnx::PRelu_268__broadcast/body.53/PRelu_output_0.scaled/body.53/PRelu_output_0.scaled"Mul
k
/body.53/PRelu_output_0.pos
/body.53/PRelu_output_0.scaled/body.53/PRelu_output_0/body.53/PRelu"Sub
Â
/body.53/PRelu_output_0
body.54.weight
@@ -332,9 +575,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.54/Conv_output_0
onnx::PRelu_269/body.55/PRelu_output_0/body.55/PRelu"PRelu
X
/body.54/Conv_output_0/body.55/PRelu_output_0.pos/body.55/PRelu_output_0.pos"Relu
W
/body.54/Conv_output_0/body.55/PRelu_output_0.neg/body.55/PRelu_output_0.neg"Neg
_
/body.55/PRelu_output_0.neg/body.55/PRelu_output_0.relu/body.55/PRelu_output_0.relu"Relu

/body.55/PRelu_output_0.relu
onnx::PRelu_269__broadcast/body.55/PRelu_output_0.scaled/body.55/PRelu_output_0.scaled"Mul
k
/body.55/PRelu_output_0.pos
/body.55/PRelu_output_0.scaled/body.55/PRelu_output_0/body.55/PRelu"Sub
Â
/body.55/PRelu_output_0
body.56.weight
@@ -344,9 +596,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.56/Conv_output_0
onnx::PRelu_270/body.57/PRelu_output_0/body.57/PRelu"PRelu
X
/body.56/Conv_output_0/body.57/PRelu_output_0.pos/body.57/PRelu_output_0.pos"Relu
W
/body.56/Conv_output_0/body.57/PRelu_output_0.neg/body.57/PRelu_output_0.neg"Neg
_
/body.57/PRelu_output_0.neg/body.57/PRelu_output_0.relu/body.57/PRelu_output_0.relu"Relu

/body.57/PRelu_output_0.relu
onnx::PRelu_270__broadcast/body.57/PRelu_output_0.scaled/body.57/PRelu_output_0.scaled"Mul
k
/body.57/PRelu_output_0.pos
/body.57/PRelu_output_0.scaled/body.57/PRelu_output_0/body.57/PRelu"Sub
Â
/body.57/PRelu_output_0
body.58.weight
@@ -356,9 +617,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.58/Conv_output_0
onnx::PRelu_271/body.59/PRelu_output_0/body.59/PRelu"PRelu
X
/body.58/Conv_output_0/body.59/PRelu_output_0.pos/body.59/PRelu_output_0.pos"Relu
W
/body.58/Conv_output_0/body.59/PRelu_output_0.neg/body.59/PRelu_output_0.neg"Neg
_
/body.59/PRelu_output_0.neg/body.59/PRelu_output_0.relu/body.59/PRelu_output_0.relu"Relu

/body.59/PRelu_output_0.relu
onnx::PRelu_271__broadcast/body.59/PRelu_output_0.scaled/body.59/PRelu_output_0.scaled"Mul
k
/body.59/PRelu_output_0.pos
/body.59/PRelu_output_0.scaled/body.59/PRelu_output_0/body.59/PRelu"Sub
Â
/body.59/PRelu_output_0
body.60.weight
@@ -368,9 +638,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.60/Conv_output_0
onnx::PRelu_272/body.61/PRelu_output_0/body.61/PRelu"PRelu
X
/body.60/Conv_output_0/body.61/PRelu_output_0.pos/body.61/PRelu_output_0.pos"Relu
W
/body.60/Conv_output_0/body.61/PRelu_output_0.neg/body.61/PRelu_output_0.neg"Neg
_
/body.61/PRelu_output_0.neg/body.61/PRelu_output_0.relu/body.61/PRelu_output_0.relu"Relu

/body.61/PRelu_output_0.relu
onnx::PRelu_272__broadcast/body.61/PRelu_output_0.scaled/body.61/PRelu_output_0.scaled"Mul
k
/body.61/PRelu_output_0.pos
/body.61/PRelu_output_0.scaled/body.61/PRelu_output_0/body.61/PRelu"Sub
Â
/body.61/PRelu_output_0
body.62.weight
@@ -380,9 +659,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.62/Conv_output_0
onnx::PRelu_273/body.63/PRelu_output_0/body.63/PRelu"PRelu
X
/body.62/Conv_output_0/body.63/PRelu_output_0.pos/body.63/PRelu_output_0.pos"Relu
W
/body.62/Conv_output_0/body.63/PRelu_output_0.neg/body.63/PRelu_output_0.neg"Neg
_
/body.63/PRelu_output_0.neg/body.63/PRelu_output_0.relu/body.63/PRelu_output_0.relu"Relu

/body.63/PRelu_output_0.relu
onnx::PRelu_273__broadcast/body.63/PRelu_output_0.scaled/body.63/PRelu_output_0.scaled"Mul
k
/body.63/PRelu_output_0.pos
/body.63/PRelu_output_0.scaled/body.63/PRelu_output_0/body.63/PRelu"Sub
Â
/body.63/PRelu_output_0
body.64.weight
@@ -392,9 +680,18 @@ Y
kernel_shape@@ *
pads@@@@ *
strides@@ 
Y
/body.64/Conv_output_0
onnx::PRelu_274/body.65/PRelu_output_0/body.65/PRelu"PRelu
X
/body.64/Conv_output_0/body.65/PRelu_output_0.pos/body.65/PRelu_output_0.pos"Relu
W
/body.64/Conv_output_0/body.65/PRelu_output_0.neg/body.65/PRelu_output_0.neg"Neg
_
/body.65/PRelu_output_0.neg/body.65/PRelu_output_0.relu/body.65/PRelu_output_0.relu"Relu

/body.65/PRelu_output_0.relu
onnx::PRelu_274__broadcast/body.65/PRelu_output_0.scaled/body.65/PRelu_output_0.scaled"Mul
k
/body.65/PRelu_output_0.pos
/body.65/PRelu_output_0.scaled/body.65/PRelu_output_0/body.65/PRelu"Sub
Â
/body.65/PRelu_output_0
body.66.weight
@@ -16990,30 +17287,30 @@ y
<±Â:ù�Ê:!-:²¬;V¸[»g’9�»�5<ùko»3Bª: €Z;0Ù4»� 9¢îB¸IÏÊ9 :ý³ºf¨ ;ÎF°¹¡!¼b—¼¼gšº„ö¤:OkŠ»L\}ºÂ�á;ƒFð;Åo–º)¼)!Òºïì¹ÛØ¥:±&ºz;G:T'B»})&ºÂeË9ë‹k<Üí"8£ý¢9éþ8.+oºèL9�,;â ºoÿ:§‰!»´
šºï#9ìN¹· 6¾ºØœ ¹û Œ;ÂwÌ;C'9ØSo¸¸(÷¸G¿:¡7»Ö%@ººˆ¼‘3<¨i: 2‡:¸¯u;ÿUÇ:Rg‰9Ù79¾ 9”îy¹p*—;<8–;^èÕ·�h#;Àﱺ"_5:Pu'ºôÎ¥º"¾:Bγ:ký»*0:Ó¯»`1“º®3ÿ¸tŸ:2©�:¬°:¾Ù!=â»�;pw¯7ïaÝ:d~ˆ:žš¹¢ùu:iT�¹h+:z¿â;&%;˸v9õñ�¹.BºŸÕ&:*}3ºÆj]:0ɺ@<`<.±¿:õ—к½+”»™$W8â|w9\eá¹VXP¹DÖÖº•$Ⱥn ¹·@°<<ĸºþª9·é–ºZi9ñ®»´ü;÷¶>ºß®·S½×;Ï:H'͹*ùB:/}²¹2Wƒ¹F…ºÜˆù:Ð�“ºó`¹:ðF~;¹“Õ¹žÑÍ:4~$9Ô»,ºì·;` ä:³òº}m‹;š�Ù¹Öš8@Øp8¯û9¨éƒ8hø»¼@b=»}æß8L(¢:>~•¸a# ºñÔ-:Œ"¬¹V¯7r·÷»Ä| »HW<¹ƒ÷¡»Î$:¨Ò­9ðëºKyh:©r�:Cs¼Ëj׺¶Ôc:9M²»!µPº—¿Q:³3]ºÁPº„_ª9˜�;ý瑺ÂAƺW»  :<Et8�ë8:Ú“sº@ªé:TC; ±H¼T"h9\Ôà:ˆÀ亥—/¹‚‰':¼¤:A†a:DÎ@<€9‹:üÉÆ¸ç@Ê;DŸºÒW:ÝKºÏ*:œ°:=Lz»üƒÍºÏ :AÑ—º¼£:ðW:庺§ô
:POSº�<DÈ•;É%Ä9“k?»Nk º
øû¹£¸fíN¹†œ³::}�;ލúºðŒzº§@¢ºi‡:ܶò¸•ÄH9ÙfLºMà†º!üû‚AùºŠ½Vºœé82àž9ùÝr9CEﺺxj¹-ái:qµ2;È�’»Äq�8Èš´:ª» A²¹WOA9À:ž‰º®�;E:%á[9„Ì&ºi:%O6: M»–2<�ÕÊ»„i:ž»k¾:áIá;‚8°»ñä:ÙF¬:fXw¹ÔÀX¹æç×»'I¶¹e)=9€L踤%ë:È0:ÅŸ©»ªÞLº =»&“Å;i p¹ ‘ݹ³�˜:Mí‰:ÿÞ4ºÀ]£:E:²Sô9˜S<žòº'iY»»û¼Ïœ^º©®¹c•:Lî0:žº]Ë;TL“»…Ú:³Ò»€fç:€5¸,Žë:F“N9ŠqcºÀµj¹÷ÔÔ¹Ö¸X:ƒÅºd29Nã":+óÌ:ô›A»9éŠ;= û» Œ:±3˜»+ÙŒ;s#¢»F@½¹ºlUØ9¶…V¹Ë�Ÿ<úÝ„º¢À‡:Õ1:oìŽ8ň;Ó=™; ôS»þ:þkÛº¥Zi:‘mö¹Pë°9,S‚»wÀÈ9í):Pý9Åu€9üÑ:E” <§LC:"Ì;\xÜ»6”!¹ˆüò¸j¡v9àsà8ØŽ:ÞÛr;h0/ºv#»Zoì¸u„¹03:ÃM5²€c9‹c»È º¦¬Š¸D_;Õ䡹P9’Ì×:{Ý�¹Ó6¸9”­/¼ÀÊÂ6 ÊÇ9b~:;çÀ§ºý‘ƹ=ÞT9!¶¹8.ºZ3O»‘¡�:|]wº”òÄ:¸&‚:Q”¾¹ð ,¹FÀ¹á0‘:Pj¼yØ:,!/:)ƒÇ;ƒKø:*Õ0B body.66.biasJÀ&%o¼E@½€Ì•;\zT;T¦Ó¼hú¼»[:p£W<øŒ¼€°µ9Ô>O¼r­‚¼¢¿Ç¼pÉ…»À‡i»GÎŽ¼2'¼ê[½4Á¯;9ó3¼@<×»H!¼ h<´Ø<äáš; ªP<È»¼Ìñ«¼DÁ¼àf‚» Æ»(Iµ¼Xoo¼.Ç#½¨ýŸ;€¼º|`Ž¼Ðœ…¼X§ƒ< À•<ªær¼ o:ŒT¼²˜‹¼&2ú¼0礻�¦½»Õ¿¼*œ@Bonnx::PRelu_242J€Ñr¼§¾í
¾¼Q¿cÉ}?Ðôo?o8Ÿ¼ ¹¿«œ½|†>† �¾à?±+�½ÿ¶{?F¤Ã¾ÒŸ7½A æ½l鬾¾‘y?\�¾¾5ͽž¿oÚ‚¿ôéϺæ¤W¾‰�Ò>®ô|?Â?›Ào¼î˜{?k¾Â¾x?ÏÀ:´‚”½Ó½®<d>½¶_?2I½mñ ¿¸¯T?’i£<®¤½¢+³¼Ó> ¼:�0¾ö¤(?Å,e?É=„¿p –=%Ê�?2Îq? Ø>ôÇ ?öà½<°¬¾Tk ¿Å+.?âBq?JÍ‚<âØF¿TcÌ>œ<*œ@Bonnx::PRelu_243J€Ÿ§¢¼Ö…è½=>A>Ê€?½¾±*?……¬<+’¾}‰¾0Ž®¾Ú*?ÈQ8>jIh?�=¾dEà¾S¯=£óÚ¾G¥©½
ê]:Eþ!¿v‘þ½Íê>� Õ¾Äç¾&¯†¾’�=¨=¡¾Ô³?S…?õE›½Ø¥'¾â¥µ¾Y½í½¸—)½£¯„¾F ¿Ì€8¾-­î=]Π¾i>¾Ïr$¾µ=÷=¤=ڧͽ6‰Ü½TÚ™=¹õ’½|Á¡=d_:Š?’>œýx?‡E¾þˆÂ="ˆ?'y¼C“-? Pi>q$ǾtG¿äK<­ƒ(¾á™¾EÔy¾q’‹>‡~¢¾*œ@Bonnx::PRelu_244J€ÍL¿½h½¾/>G3‹¾-€?Àö4>ÏL.½®bh?âÜ¿DÆ€?aq�¾�\?_y›=êѾt¯¾ÚÔ¶¾;ù>° ú;kæ³¾þþ"¾¡'•>z2d¾AÀ>¤D?ˆ<:¸¹><¶=¿Ø>? _†9ÐèC¾n‘§¾~yî¾a&=óܽ¬/龒Ĩ½\Q¾‚—½°>‚xe¾žÚR=ºB¿¶^¾¹G«¾C¯…>â Á¼>ÿ©½#Ž�¾¿’=Œ—€?cU?áÞ«½Ð3|?Äüš>Pòä>|‹>`°/=T·¿P¿ =¼=–Ý¢¾N»¾¾—Û=ä a=*œ@Bonnx::PRelu_245J€FÉ›¾}�‡½ ß½¶MR¾j�{?¦¸ž>»`‰¾_ã�½[{Ú¾v›~?½…g½v‡o?x™¾žƒ=‰Õ„¾ñ''>ʃF?t3”>¼9ɼ¢ZT¾ }?ã,`>›œ›½n‡@?IWÞ½¤fè¾@(?¸“?`Ðô>,²>·q$¾ÿ%¿²¬½zò¤:´¾ËwV¾Äoÿ¾U#>Î ¾Á(¼>¢£µ½¼«>’Ík>žìÜ<Ã'¾#?:íç>²z¾‚TŽ>Ë�?æE½=èé\>T…?ؾ6ॾÎ@c>¤°‰¾_ê�¾ô)>¶0W>ð#ç¾.ÈÜ=Ô|l>ñÊ??*œ@Bonnx::PRelu_246J€†*ß¾»Ò¾=pó½Í´Æ¾à¨s?î](¾âM¿[ Ô=ºï?Îãr?›x>ÈõQ?ØV¿ê¢J?pE?ª˜M¾‹Š?C÷µ¾ŠÊ¿ì@¾Pi+>™§Ñ>„_ >^‘w?ŽVƒ¾XÂÞ¾ñ1È=ÚˆŒ?ˆþ??ù´Š½kgû¾ô«Ú¾Óýˆ>”§¿‚Ýu< Ún>_]¼L�G?V‰h½º›¿N¢½XAG>;›Ž¾0ž�dĽ-ÅÂ>ŠíG?ø\2¾”ˆ? š‡?ø¤>d1o½Xp?ªX©»B%¿‚ñO?0À¾¢‹h>ñÿ¼”8?šê?/†¾•ãg?í"Ä>*œ@Bonnx::PRelu_247J€ìh«¾˜$]>:±×½`¦8¿“^‡?1?A‘!?ï÷¶¾~š»ãô‡?4Ñ´>O?ŒÌ?>“É%?¯pß=VP
øû¹£¸fíN¹†œ³::}�;ލúºðŒzº§@¢ºi‡:ܶò¸•ÄH9ÙfLºMà†º!üû‚AùºŠ½Vºœé82àž9ùÝr9CEﺺxj¹-ái:qµ2;È�’»Äq�8Èš´:ª» A²¹WOA9À:ž‰º®�;E:%á[9„Ì&ºi:%O6: M»–2<�ÕÊ»„i:ž»k¾:áIá;‚8°»ñä:ÙF¬:fXw¹ÔÀX¹æç×»'I¶¹e)=9€L踤%ë:È0:ÅŸ©»ªÞLº =»&“Å;i p¹ ‘ݹ³�˜:Mí‰:ÿÞ4ºÀ]£:E:²Sô9˜S<žòº'iY»»û¼Ïœ^º©®¹c•:Lî0:žº]Ë;TL“»…Ú:³Ò»€fç:€5¸,Žë:F“N9ŠqcºÀµj¹÷ÔÔ¹Ö¸X:ƒÅºd29Nã":+óÌ:ô›A»9éŠ;= û» Œ:±3˜»+ÙŒ;s#¢»F@½¹ºlUØ9¶…V¹Ë�Ÿ<úÝ„º¢À‡:Õ1:oìŽ8ň;Ó=™; ôS»þ:þkÛº¥Zi:‘mö¹Pë°9,S‚»wÀÈ9í):Pý9Åu€9üÑ:E” <§LC:"Ì;\xÜ»6”!¹ˆüò¸j¡v9àsà8ØŽ:ÞÛr;h0/ºv#»Zoì¸u„¹03:ÃM5²€c9‹c»È º¦¬Š¸D_;Õ䡹P9’Ì×:{Ý�¹Ó6¸9”­/¼ÀÊÂ6 ÊÇ9b~:;çÀ§ºý‘ƹ=ÞT9!¶¹8.ºZ3O»‘¡�:|]wº”òÄ:¸&‚:Q”¾¹ð ,¹FÀ¹á0‘:Pj¼yØ:,!/:)ƒÇ;ƒKø:*Õ0B body.66.biasJÀ&%o¼E@½€Ì•;\zT;T¦Ó¼hú¼»[:p£W<øŒ¼€°µ9Ô>O¼r­‚¼¢¿Ç¼pÉ…»À‡i»GÎŽ¼2'¼ê[½4Á¯;9ó3¼@<×»H!¼ h<´Ø<äáš; ªP<È»¼Ìñ«¼DÁ¼àf‚» Æ»(Iµ¼Xoo¼.Ç#½¨ýŸ;€¼º|`Ž¼Ðœ…¼X§ƒ< À•<ªær¼ o:ŒT¼²˜‹¼&2ú¼0礻�¦½»Õ¿¼*©@Bonnx::PRelu_242__broadcastJ€Ñr¼§¾í
¾¼Q¿cÉ}?Ðôo?o8Ÿ¼ ¹¿«œ½|†>† �¾à?±+�½ÿ¶{?F¤Ã¾ÒŸ7½A æ½l鬾¾‘y?\�¾¾5ͽž¿oÚ‚¿ôéϺæ¤W¾‰�Ò>®ô|?Â?›Ào¼î˜{?k¾Â¾x?ÏÀ:´‚”½Ó½®<d>½¶_?2I½mñ ¿¸¯T?’i£<®¤½¢+³¼Ó> ¼:�0¾ö¤(?Å,e?É=„¿p –=%Ê�?2Îq? Ø>ôÇ ?öà½<°¬¾Tk ¿Å+.?âBq?JÍ‚<âØF¿TcÌ>œ<*©@Bonnx::PRelu_243__broadcastJ€Ÿ§¢¼Ö…è½=>A>Ê€?½¾±*?……¬<+’¾}‰¾0Ž®¾Ú*?ÈQ8>jIh?�=¾dEà¾S¯=£óÚ¾G¥©½
ê]:Eþ!¿v‘þ½Íê>� Õ¾Äç¾&¯†¾’�=¨=¡¾Ô³?S…?õE›½Ø¥'¾â¥µ¾Y½í½¸—)½£¯„¾F ¿Ì€8¾-­î=]Π¾i>¾Ïr$¾µ=÷=¤=ڧͽ6‰Ü½TÚ™=¹õ’½|Á¡=d_:Š?’>œýx?‡E¾þˆÂ="ˆ?'y¼C“-? Pi>q$ǾtG¿äK<­ƒ(¾á™¾EÔy¾q’‹>‡~¢¾*©@Bonnx::PRelu_244__broadcastJ€ÍL¿½h½¾/>G3‹¾-€?Àö4>ÏL.½®bh?âÜ¿DÆ€?aq�¾�\?_y›=êѾt¯¾ÚÔ¶¾;ù>° ú;kæ³¾þþ"¾¡'•>z2d¾AÀ>¤D?ˆ<:¸¹><¶=¿Ø>? _†9ÐèC¾n‘§¾~yî¾a&=óܽ¬/龒Ĩ½\Q¾‚—½°>‚xe¾žÚR=ºB¿¶^¾¹G«¾C¯…>â Á¼>ÿ©½#Ž�¾¿’=Œ—€?cU?áÞ«½Ð3|?Äüš>Pòä>|‹>`°/=T·¿P¿ =¼=–Ý¢¾N»¾¾—Û=ä a=*©@Bonnx::PRelu_245__broadcastJ€FÉ›¾}�‡½ ß½¶MR¾j�{?¦¸ž>»`‰¾_ã�½[{Ú¾v›~?½…g½v‡o?x™¾žƒ=‰Õ„¾ñ''>ʃF?t3”>¼9ɼ¢ZT¾ }?ã,`>›œ›½n‡@?IWÞ½¤fè¾@(?¸“?`Ðô>,²>·q$¾ÿ%¿²¬½zò¤:´¾ËwV¾Äoÿ¾U#>Î ¾Á(¼>¢£µ½¼«>’Ík>žìÜ<Ã'¾#?:íç>²z¾‚TŽ>Ë�?æE½=èé\>T…?ؾ6ॾÎ@c>¤°‰¾_ê�¾ô)>¶0W>ð#ç¾.ÈÜ=Ô|l>ñÊ??*©@Bonnx::PRelu_246__broadcastJ€†*ß¾»Ò¾=pó½Í´Æ¾à¨s?î](¾âM¿[ Ô=ºï?Îãr?›x>ÈõQ?ØV¿ê¢J?pE?ª˜M¾‹Š?C÷µ¾ŠÊ¿ì@¾Pi+>™§Ñ>„_ >^‘w?ŽVƒ¾XÂÞ¾ñ1È=ÚˆŒ?ˆþ??ù´Š½kgû¾ô«Ú¾Óýˆ>”§¿‚Ýu< Ún>_]¼L�G?V‰h½º›¿N¢½XAG>;›Ž¾0ž�dĽ-ÅÂ>ŠíG?ø\2¾”ˆ? š‡?ø¤>d1o½Xp?ªX©»B%¿‚ñO?0À¾¢‹h>ñÿ¼”8?šê?/†¾•ãg?í"Ä>*©@Bonnx::PRelu_247__broadcastJ€ìh«¾˜$]>:±×½`¦8¿“^‡?1?A‘!?ï÷¶¾~š»ãô‡?4Ñ´>O?ŒÌ?>“É%?¯pß=VP
?„ÿo?õ�¦>†þ<øº™¾uÉ? üLº`¨>Vgž?re�<”�ϾÁHô>éHH?‚�D??E>T@?pŸ§?Ú`�½¤°E½ã¡½2¼Q?ªÀྉ8>‰>¾¯/{=JA½<-ö=¦t
?„²?¶�>äÜ=gv? v?D_??.Im?Ôý£<À­>Ö€?|ö}>©G[? û£½†>ô5¡¾ü�= Ìý>÷[¾Pu=€Ùq?yñ¾*œ@Bonnx::PRelu_248J€ƒ•>åê0>ŠÌö=Ðí*½Â(f?ðQM?x,x>ÜÂÁ¾ˆRã>ßo?˜Ï´¾è2u?ÓÅ"?Ï^g?…CξtiÝ>ÈP?"²?tµŠ>hLнx §=Tsö½:>º;€?Um¡¾l^ؾAR'?V¯™?îÉj?\€:¾dÛZ?�(§=\û[?,¿,¿©V<vþt?d“Í>¶[V>©]¾$íÝ>BH­>ÍË>=ú»�>j狾–«,¾±ÿˆ¾ÓFƒ?’pÔ>Fõ+?,&‰?À:Ç>Ÿè>8<ƒ?X.„>³»½àO¾à¹Â¾Lþ>Ôã±=w4?wì6=¥¶å>:´v?žÃ¾*œ@Bonnx::PRelu_249J€ºÍ=øÕ…>ž¨ÿ>pËî¾DY«?Š!ö>‚�>Éý¾ b½½b7™?8;Õ¼.Ýò?¾2o>ÆÙ|?¨º+?Ë`Q? Ù±?(î>?ÜÜ>!dؽkŒ¾“š=±EÐ>¥Z\?s¾â»˜½R[e?žç‰?öq?÷G>H&á>ĸ¿®h >i´†=èp¾Œ¶„?{ë¾ûß9?Jéõ¼P�ò>w[¾ÁK2?t3T>ªòò¾²’U?Ýä6?q§?<(�>ÁG?î3s?å*ß>,!Ñ>àÖZ?§‚!?ÑMV>ÖÙW¾êÍ‚¾n‹ >t >Ù;¾ˆ¡¿ÒŸ©>h? Qõ=*œ@Bonnx::PRelu_250J€}_7>éà@:ë�¾×U*¿ºqP?_Oo¾xF[¿+ÿ½E3B=¬ `?î.>ó‘?¤T ?¥Õ‰?¡µ?÷Ä?ël?«†?4%?yÈ>&àF¾Û6Q½Ê3>^5?êpí;hª[¾;õB?[F_?ø!»h�^?pe˽à·å=¢ç >À1³> 8?Q«B?1(¿¶o½ ¾‚¾XЉ>GCM¾zèQ>¿s>Þðá<¸A«>ô=?Æ–R?¾f¯¾J¬n?%¯u?Îá?ì'e>Ö%ƒ?&Ím?¬{¾÷Šâ¾Åvξ£5½B±¿ìÆ�½‘©>?.@>1°ð>࿪>*œ@Bonnx::PRelu_251J€h¡J>J­�>ÜbÄ>amž>¤]€?´ ˆ½N�<?dî¾ozu?‚‡?Ü~Á¾Û„?yD>€÷�?óON>?Ü3?‹€?pÚm?ðr_?¯¾¾È�³¾ø>EO?0¸­?Þ0þ˱ï¾DO>ºp?Ø,¦>9]>ü8m?ši;—rS¾ßŠ ¾†# ?´aŽ? ¥<>tÇ`¾'ž¥¾l-p>]?üe´>h˜;?;R�½Þ¨¼zœ&?W¢?ÙÓÎ=Â¥"?2ìp?¿=?û?ô�‹?èØ>Ç>�è3¾÷òÛ¾L6o>tÏÔ<^ü“¿2Íç¾ÿÒ“½‚�E?&M©¾*œ@Bonnx::PRelu_252J€Îy¾§Ð>¶ ¾R¡ì¼ªxƒ?óƒ[>2@?¶#¿{*˜=ƒï†?Œ�¤¾Br?ÄF_>ZY? ±ú¾‰Çƒ?©ãk?s?ö©\?»û>MY?ÚY¼>ci?ëØ_?¿=‚Î>8I?;tŠ?°B�½MÒ>4£Õ>¹·˜>\à²>h6?VZU?�m)?—‘ɽ¢+y¾…7…¾€¸i½«*~>*2¤>ŠÚÇ>d©¿·ûø¾~>ã,V?Xh¾�#Ë>l†?Lg…?Ø:ó>^…? <?q?Õ>x8è=‰ž=?t�2¾}
¯=6„†¾ Xо_‰±>œ`w¾*œ@Bonnx::PRelu_253J€V¶"¿þÇñ>b�w¾[5}>NEo?¡PB>Én½� ¸½È—€>ƱU?K(Ã=ô‰?MN?½­‚?1 ¿Áí}?~‹z?àv?xv_?íÀ®>ÜÑT?+ú'¾°`à>’þo?ô‹;?êîe>„Rm?ð±?GÁY?¢7?ÖÎì¾–¾?°N�>º
Ú½Õ‘Õ<j~Ü=Þc5>u¾Èä¾H³¾­#?¾>/A@?ÄëP>ü>·Ï ¾ö'x?u”ˆ>˜%?‚ƒ¤?šdn?ŠÈk>Ãgˆ?^Ö=?§—0?ÚÕQ¾¶Ñ¦>v›?èQ‚¾²x_?6$�=Kµ¿½âÅ…?‚Û =*œ@Bonnx::PRelu_254J€ )?ªs¾¾’%Ú¾{¿Í½‘?,µü>pÏk?¬$?²Ê\?Œ\±?ÇÃ6>ít�?ôdÓ>.0�?NÛ¾zps?¾µ]?)Ý…?7Ú ?8ƒñ>à~뾃½P?(©?ïQ“?‘i¢¾70¾Æï‚?Ðm4?f‡D?nö>ßây?\<s?æƒ?d¿>" >é?¢63¾;E?".D>S?r$Í=÷?Dß=?œñ_½wÈ2>z.>-àn?:Üf¾É-¶>ºÍZ?±po?1%?li1?˜k?–™£½Vkß¾¢Îb<µ¦U?oBá>Ö[<<ÞÂÇ=ÊÆ5>ôµ1?fG>*œ@Bonnx::PRelu_255J€¼•2?¶b?ñ.ª¾Þy&?ãØ`?ä'÷¾\�?ÓOÉ>Ï d>®c`?ºMs>hQˆ?¸-X?Œ0@?Þ?l<�?Rþh?ô­n?ªÃ¦>©ñ½qk?ª?Õú°=ôú:?è 5¾Î/?£5?&×9?¿jÀ>(|¾´•q?,¬?‡#ÿ¼‹MG>zè4?©×�>Š«{? œv¼�÷&>ï–>jô]?¬{ѼÞóÚ>°7>dqD>&ÏǽÿDu?HÜ;>k h?€Çr?.ƒ?jž7?Òku?.ÕZ?n—Y¾Lc¼‚?Ë>Ù
r?j‹½Å7B? @¸¾¬>Á>ÚžÝ<*œ@Bonnx::PRelu_256J€ÚÂ2?ˆ‰¯>š£‹>ƒO ?ò§�?ÙÑF¼¼z?W쪾?³Ì>�5‡?�œÌ>ycƒ?¦²T?6χ?ÌP¥=Z7‚?èák?²vy?ç�‚?¢b0½Ü¬?àÍP>ȧ>�6�?>?F¾´L}½pΕ>ú£?!!?|N?õG*?ôX¥?}¬=€¿+?ª‡?rù?˜#_?F™¾Ø‹ò>þ…²>0)9?‚B ?»¾€>1'?Øœæ>8©?cÄ„?.õá><eX?(¤Œ? l?®Œ>j³?�ƒ^?ŽE¾#ì¥>gS½:À­Y?ÿG½h+j?î¥á=Ç�=ªæŒ½šÄs>*œ@Bonnx::PRelu_257J€:¥S?ÂN ?‰´>;%ˆ‹>gbk?Û˜)>îä…?9ÃÎ<\…±¾PQk?uع<^Ñ‚?)R&?ÐXp?
ÃÞ>Ìs„?šM¾?Nîš?Ñ‚f?âDî>t¢d?žn= Ûí>+ ‘?<ÄB>TxÍ>Ý„Ö>0þ�?n&‡>_O? ZÆ>«?è?n[?³EH?ãb?4\?�Ñ\>SRä=¹š°½Ìž½x>’ž>Iûƒ=•¤¡>Âs?…“y?¾•é><·a?³ÞN?/!A?D?‚o™?”„p? ?º> Û‡>¸�=ˆø=?)™Ÿ»5©N?�|:>‰4®:SðÀ=úšE<*œ@Bonnx::PRelu_258J€†�;�è¾ìD >4+_> OŒ?Ñ;?H­p?°Öé¾Eáµ>¨ns?"R=.v?sn¾z
f?I¿¾bør?F"�?VÕT?Vx?H ?“:Œ>úJñ½‘^$?k°‚?÷3Â>Ûšç=#xI?Ol¬?Ö¹Ü>P:?Žy²>æ‡f?Ú}?f%>QžR?b·!?M[l?bv�¾Îr?܇»>Ðu¾þ«¢>-™=Êʇ>XìÛ>¡Íó>¥Œ–?U>ü¼ ¿4Ë£?;ïë>óâa>#ëŒ?¤]? {ž=žI¶>C8$>j‚>•º�½t¿j?â2k>é ?û‚?x‚ ?*œ@Bonnx::PRelu_259J€ºûJ>
?„²?¶�>äÜ=gv? v?D_??.Im?Ôý£<À­>Ö€?|ö}>©G[? û£½†>ô5¡¾ü�= Ìý>÷[¾Pu=€Ùq?yñ¾*©@Bonnx::PRelu_248__broadcastJ€ƒ•>åê0>ŠÌö=Ðí*½Â(f?ðQM?x,x>ÜÂÁ¾ˆRã>ßo?˜Ï´¾è2u?ÓÅ"?Ï^g?…CξtiÝ>ÈP?"²?tµŠ>hLнx §=Tsö½:>º;€?Um¡¾l^ؾAR'?V¯™?îÉj?\€:¾dÛZ?�(§=\û[?,¿,¿©V<vþt?d“Í>¶[V>©]¾$íÝ>BH­>ÍË>=ú»�>j狾–«,¾±ÿˆ¾ÓFƒ?’pÔ>Fõ+?,&‰?À:Ç>Ÿè>8<ƒ?X.„>³»½àO¾à¹Â¾Lþ>Ôã±=w4?wì6=¥¶å>:´v?žÃ¾*©@Bonnx::PRelu_249__broadcastJ€ºÍ=øÕ…>ž¨ÿ>pËî¾DY«?Š!ö>‚�>Éý¾ b½½b7™?8;Õ¼.Ýò?¾2o>ÆÙ|?¨º+?Ë`Q? Ù±?(î>?ÜÜ>!dؽkŒ¾“š=±EÐ>¥Z\?s¾â»˜½R[e?žç‰?öq?÷G>H&á>ĸ¿®h >i´†=èp¾Œ¶„?{ë¾ûß9?Jéõ¼P�ò>w[¾ÁK2?t3T>ªòò¾²’U?Ýä6?q§?<(�>ÁG?î3s?å*ß>,!Ñ>àÖZ?§‚!?ÑMV>ÖÙW¾êÍ‚¾n‹ >t >Ù;¾ˆ¡¿ÒŸ©>h? Qõ=*©@Bonnx::PRelu_250__broadcastJ€}_7>éà@:ë�¾×U*¿ºqP?_Oo¾xF[¿+ÿ½E3B=¬ `?î.>ó‘?¤T ?¥Õ‰?¡µ?÷Ä?ël?«†?4%?yÈ>&àF¾Û6Q½Ê3>^5?êpí;hª[¾;õB?[F_?ø!»h�^?pe˽à·å=¢ç >À1³> 8?Q«B?1(¿¶o½ ¾‚¾XЉ>GCM¾zèQ>¿s>Þðá<¸A«>ô=?Æ–R?¾f¯¾J¬n?%¯u?Îá?ì'e>Ö%ƒ?&Ím?¬{¾÷Šâ¾Åvξ£5½B±¿ìÆ�½‘©>?.@>1°ð>࿪>*©@Bonnx::PRelu_251__broadcastJ€h¡J>J­�>ÜbÄ>amž>¤]€?´ ˆ½N�<?dî¾ozu?‚‡?Ü~Á¾Û„?yD>€÷�?óON>?Ü3?‹€?pÚm?ðr_?¯¾¾È�³¾ø>EO?0¸­?Þ0þ˱ï¾DO>ºp?Ø,¦>9]>ü8m?ši;—rS¾ßŠ ¾†# ?´aŽ? ¥<>tÇ`¾'ž¥¾l-p>]?üe´>h˜;?;R�½Þ¨¼zœ&?W¢?ÙÓÎ=Â¥"?2ìp?¿=?û?ô�‹?èØ>Ç>�è3¾÷òÛ¾L6o>tÏÔ<^ü“¿2Íç¾ÿÒ“½‚�E?&M©¾*©@Bonnx::PRelu_252__broadcastJ€Îy¾§Ð>¶ ¾R¡ì¼ªxƒ?óƒ[>2@?¶#¿{*˜=ƒï†?Œ�¤¾Br?ÄF_>ZY? ±ú¾‰Çƒ?©ãk?s?ö©\?»û>MY?ÚY¼>ci?ëØ_?¿=‚Î>8I?;tŠ?°B�½MÒ>4£Õ>¹·˜>\à²>h6?VZU?�m)?—‘ɽ¢+y¾…7…¾€¸i½«*~>*2¤>ŠÚÇ>d©¿·ûø¾~>ã,V?Xh¾�#Ë>l†?Lg…?Ø:ó>^…? <?q?Õ>x8è=‰ž=?t�2¾}
¯=6„†¾ Xо_‰±>œ`w¾*©@Bonnx::PRelu_253__broadcastJ€V¶"¿þÇñ>b�w¾[5}>NEo?¡PB>Én½� ¸½È—€>ƱU?K(Ã=ô‰?MN?½­‚?1 ¿Áí}?~‹z?àv?xv_?íÀ®>ÜÑT?+ú'¾°`à>’þo?ô‹;?êîe>„Rm?ð±?GÁY?¢7?ÖÎì¾–¾?°N�>º
Ú½Õ‘Õ<j~Ü=Þc5>u¾Èä¾H³¾­#?¾>/A@?ÄëP>ü>·Ï ¾ö'x?u”ˆ>˜%?‚ƒ¤?šdn?ŠÈk>Ãgˆ?^Ö=?§—0?ÚÕQ¾¶Ñ¦>v›?èQ‚¾²x_?6$�=Kµ¿½âÅ…?‚Û =*©@Bonnx::PRelu_254__broadcastJ€ )?ªs¾¾’%Ú¾{¿Í½‘?,µü>pÏk?¬$?²Ê\?Œ\±?ÇÃ6>ít�?ôdÓ>.0�?NÛ¾zps?¾µ]?)Ý…?7Ú ?8ƒñ>à~뾃½P?(©?ïQ“?‘i¢¾70¾Æï‚?Ðm4?f‡D?nö>ßây?\<s?æƒ?d¿>" >é?¢63¾;E?".D>S?r$Í=÷?Dß=?œñ_½wÈ2>z.>-àn?:Üf¾É-¶>ºÍZ?±po?1%?li1?˜k?–™£½Vkß¾¢Îb<µ¦U?oBá>Ö[<<ÞÂÇ=ÊÆ5>ôµ1?fG>*©@Bonnx::PRelu_255__broadcastJ€¼•2?¶b?ñ.ª¾Þy&?ãØ`?ä'÷¾\�?ÓOÉ>Ï d>®c`?ºMs>hQˆ?¸-X?Œ0@?Þ?l<�?Rþh?ô­n?ªÃ¦>©ñ½qk?ª?Õú°=ôú:?è 5¾Î/?£5?&×9?¿jÀ>(|¾´•q?,¬?‡#ÿ¼‹MG>zè4?©×�>Š«{? œv¼�÷&>ï–>jô]?¬{ѼÞóÚ>°7>dqD>&ÏǽÿDu?HÜ;>k h?€Çr?.ƒ?jž7?Òku?.ÕZ?n—Y¾Lc¼‚?Ë>Ù
r?j‹½Å7B? @¸¾¬>Á>ÚžÝ<*©@Bonnx::PRelu_256__broadcastJ€ÚÂ2?ˆ‰¯>š£‹>ƒO ?ò§�?ÙÑF¼¼z?W쪾?³Ì>�5‡?�œÌ>ycƒ?¦²T?6χ?ÌP¥=Z7‚?èák?²vy?ç�‚?¢b0½Ü¬?àÍP>ȧ>�6�?>?F¾´L}½pΕ>ú£?!!?|N?õG*?ôX¥?}¬=€¿+?ª‡?rù?˜#_?F™¾Ø‹ò>þ…²>0)9?‚B ?»¾€>1'?Øœæ>8©?cÄ„?.õá><eX?(¤Œ? l?®Œ>j³?�ƒ^?ŽE¾#ì¥>gS½:À­Y?ÿG½h+j?î¥á=Ç�=ªæŒ½šÄs>*©@Bonnx::PRelu_257__broadcastJ€:¥S?ÂN ?‰´>;%ˆ‹>gbk?Û˜)>îä…?9ÃÎ<\…±¾PQk?uع<^Ñ‚?)R&?ÐXp?
ÃÞ>Ìs„?šM¾?Nîš?Ñ‚f?âDî>t¢d?žn= Ûí>+ ‘?<ÄB>TxÍ>Ý„Ö>0þ�?n&‡>_O? ZÆ>«?è?n[?³EH?ãb?4\?�Ñ\>SRä=¹š°½Ìž½x>’ž>Iûƒ=•¤¡>Âs?…“y?¾•é><·a?³ÞN?/!A?D?‚o™?”„p? ?º> Û‡>¸�=ˆø=?)™Ÿ»5©N?�|:>‰4®:SðÀ=úšE<*©@Bonnx::PRelu_258__broadcastJ€†�;�è¾ìD >4+_> OŒ?Ñ;?H­p?°Öé¾Eáµ>¨ns?"R=.v?sn¾z
f?I¿¾bør?F"�?VÕT?Vx?H ?“:Œ>úJñ½‘^$?k°‚?÷3Â>Ûšç=#xI?Ol¬?Ö¹Ü>P:?Žy²>æ‡f?Ú}?f%>QžR?b·!?M[l?bv�¾Îr?܇»>Ðu¾þ«¢>-™=Êʇ>XìÛ>¡Íó>¥Œ–?U>ü¼ ¿4Ë£?;ïë>óâa>#ëŒ?¤]? {ž=žI¶>C8$>j‚>•º�½t¿j?â2k>é ?û‚?x‚ ?*©@Bonnx::PRelu_259__broadcastJ€ºûJ>
1¾8©W=MS?,l?�67>Àzi?%ä›=
�>O ƒ?ˆ·>€~€?�Æ*?Þ+q?kQA<‘fr?3?h?®}?c‚[?ºˆ•¾¼ž<?:¦>F¦½^Y?Œ?Ͼ>Êà4?i‘?Œÿã>ªu¨;‹‰;äŸ�?ªÿó½$R½tjÔ=-þ:?Š47?¯“¾rà‰>0; =õZC?Ÿ >B;
>Ž„@?,h??þÉS?p–e?…K?¬œ6?TL?Æ¡?B?®Ï'?x5??æí¯¾��ê>.'¾»Y?YÚÃ>hÒ(?²¤«=_N¤½åæô>¾Úš>*œ@Bonnx::PRelu_260J€¢>îåM¿¸…3>îÊ7?û‚†?j`‹<Rà€?äüg?,Í&?öQ‚?R{T>Ø[�?Ε>4‰Á¾´v0?BÚd?ûL‚?.u? Y{?óºS>¨×«½ÜóÉ=€¼Ê>¦j?$À°>6z=÷£U?¬Ì–?dTb½­=|{¾FÇB?‚¾q?ðåî½Úu…?ÎL÷>Ø¢U?IuV?•ª�=Ò>?öÓ¼†y+?œëÈ>Ë’>ú7>ý T?8¶…?˜ŒY>7o#?p©?Óˆ?‚xʼò�¤?‡B?v•²>ãP>ú舼&|'?TE?‰}u>šQr> ~“>ñIý>ä—ú>*œ@Bonnx::PRelu_261J€VYó>øÜ‚>T^•=Òë§>^9z?‘ª:=Š»€?œ¢ ½dgG>Ð^~?, $>…‰?�I<>lÌϽüÍ>¿Ã#?Ò5?.K„?Q¿Y?=ÈÃ>µ`$>äàN<6>?˜m‡?l?D^A¾ÚÛJ?ƒIÃ>Hüǽùz?¬[²>T¾>R_S?Þ>¤Î`>Æeò="ßv?‡X>J_¾È»�>²Ëh½bBÆ>¡Õ´>ÖGö>*ªM?N×<?‚�?š»)?ž�C?ÛA?‰ÔŠ>õÙ>  &?ÄZ²>< q?�á4?ez>Ó?5Ü>Jÿ^»¦2?tƒ/½ãã
¾Qºd¾*œ@Bonnx::PRelu_262J€m|¹½Û¹†>_ˆ@?ú» ?‰p›?ت>\á…?HoÛ>-´°>Áp§?ÝòK?Oh?^’]?Ži‘¾~ =0ŒÈ>˜]…?ã¿p?Ãë�?<Œ“½¥Ð¹>^´’>xš?X§]?�++?\w¾²Î£>Öή?æ$Ã>¥pµ=Rli=¹Ó¢>m%ݾ£>Ehð½²"�>óý¾-n­=ÀC>ðT>D#0?Aïû>© E?6÷s¾ÐIm?ï]?æfk?‡Y?­¨=¸Pš?ìeb¾Üø½Nª?W}õ> 8?äˆ ?š ¾Ž^>?S÷Á=Á…¼¾*Â=ëŽ^¾E??ˆÏ,?*œ@Bonnx::PRelu_263J€Ô¦Œ¼œ-x¾l œ>”‹š¾‹ñR?Ç„z=ÌNh?î3E?÷4Ç>Ø’7?Ì£¢>Mc�?(?s�
>Ž„@?,h??þÉS?p–e?…K?¬œ6?TL?Æ¡?B?®Ï'?x5??æí¯¾��ê>.'¾»Y?YÚÃ>hÒ(?²¤«=_N¤½åæô>¾Úš>*©@Bonnx::PRelu_260__broadcastJ€¢>îåM¿¸…3>îÊ7?û‚†?j`‹<Rà€?äüg?,Í&?öQ‚?R{T>Ø[�?Ε>4‰Á¾´v0?BÚd?ûL‚?.u? Y{?óºS>¨×«½ÜóÉ=€¼Ê>¦j?$À°>6z=÷£U?¬Ì–?dTb½­=|{¾FÇB?‚¾q?ðåî½Úu…?ÎL÷>Ø¢U?IuV?•ª�=Ò>?öÓ¼†y+?œëÈ>Ë’>ú7>ý T?8¶…?˜ŒY>7o#?p©?Óˆ?‚xʼò�¤?‡B?v•²>ãP>ú舼&|'?TE?‰}u>šQr> ~“>ñIý>ä—ú>*©@Bonnx::PRelu_261__broadcastJ€VYó>øÜ‚>T^•=Òë§>^9z?‘ª:=Š»€?œ¢ ½dgG>Ð^~?, $>…‰?�I<>lÌϽüÍ>¿Ã#?Ò5?.K„?Q¿Y?=ÈÃ>µ`$>äàN<6>?˜m‡?l?D^A¾ÚÛJ?ƒIÃ>Hüǽùz?¬[²>T¾>R_S?Þ>¤Î`>Æeò="ßv?‡X>J_¾È»�>²Ëh½bBÆ>¡Õ´>ÖGö>*ªM?N×<?‚�?š»)?ž�C?ÛA?‰ÔŠ>õÙ>  &?ÄZ²>< q?�á4?ez>Ó?5Ü>Jÿ^»¦2?tƒ/½ãã
¾Qºd¾*©@Bonnx::PRelu_262__broadcastJ€m|¹½Û¹†>_ˆ@?ú» ?‰p›?ت>\á…?HoÛ>-´°>Áp§?ÝòK?Oh?^’]?Ži‘¾~ =0ŒÈ>˜]…?ã¿p?Ãë�?<Œ“½¥Ð¹>^´’>xš?X§]?�++?\w¾²Î£>Öή?æ$Ã>¥pµ=Rli=¹Ó¢>m%ݾ£>Ehð½²"�>óý¾-n­=ÀC>ðT>D#0?Aïû>© E?6÷s¾ÐIm?ï]?æfk?‡Y?­¨=¸Pš?ìeb¾Üø½Nª?W}õ> 8?äˆ ?š ¾Ž^>?S÷Á=Á…¼¾*Â=ëŽ^¾E??ˆÏ,?*©@Bonnx::PRelu_263__broadcastJ€Ô¦Œ¼œ-x¾l œ>”‹š¾‹ñR?Ç„z=ÌNh?î3E?÷4Ç>Ø’7?Ì£¢>Mc�?(?s�
? ry?ü¾¼L+?0…‚?°¼š>æ‹©¾gG?û:…¾"ÆÅ>ð-�?ÜÚ0½GÞ”¾ üA?úŠ‹? 
?d@‹>Æ»Z¾†dN?ô„º>89Ü>Ûâ?9µÛ>Z ;¾¸`ë<¦^>TØ=à?ßY·>üid?FÍ{¾:ìd? ­g?($=?0T¾tÊ¿½u?Ì5]<,\)?Ü‚?¤šd?ãÃ7?M\>”j¾98â>Õ‹>Ðþ-¿‚—^?Ô·3>€n^>Rt™>*œ@Bonnx::PRelu_264J€&že¾öÉù½b¨›>ØØ?ƒ?^@ý>ÖhN?d¸?h�>kŒ?R„§¾Ð§?ø€Ÿ¾Mê>S�S?3Iˆ>Òy? }?ùœ?D_?ž2?©Üp<?Ò=ôµV?ø0ý>Z¥Ð¾Çîµ>Z2?îká>îK9>6??£}:?ðå<JÒ%?xé½T1r>o$F¾èp?¿5¿¾ï0½n`Ä>c,[?³BI?†x¼½Ão?Úf.?+aŸ>:â.>R’U?,Îv?zÙñ;…?ìÜN?ø×`? u ?µM¼>@
?d@‹>Æ»Z¾†dN?ô„º>89Ü>Ûâ?9µÛ>Z ;¾¸`ë<¦^>TØ=à?ßY·>üid?FÍ{¾:ìd? ­g?($=?0T¾tÊ¿½u?Ì5]<,\)?Ü‚?¤šd?ãÃ7?M\>”j¾98â>Õ‹>Ðþ-¿‚—^?Ô·3>€n^>Rt™>*©@Bonnx::PRelu_264__broadcastJ€&že¾öÉù½b¨›>ØØ?ƒ?^@ý>ÖhN?d¸?h�>kŒ?R„§¾Ð§?ø€Ÿ¾Mê>S�S?3Iˆ>Òy? }?ùœ?D_?ž2?©Üp<?Ò=ôµV?ø0ý>Z¥Ð¾Çîµ>Z2?îká>îK9>6??£}:?ðå<JÒ%?xé½T1r>o$F¾èp?¿5¿¾ï0½n`Ä>c,[?³BI?†x¼½Ão?Úf.?+aŸ>:â.>R’U?,Îv?zÙñ;…?ìÜN?ø×`? u ?µM¼>@
¼¾
�À=ä9¹¾±H<=ÝÍ’>rŒð>ˆ-N?ÎÉ=*œ@Bonnx::PRelu_265J€î¢ò¾vã?i¤ ?‡˜H?>d}?XB‰>lM³¾±ß?Ìζ>ä^y?¢ùH??Є?7ðÖ¼IѨ>gh?ÖJ²>—ÞL?ºÚ~?·®0?ÁŸ>ª.?x0?:zÎ=Lyu?¤i*?~ˆ¾ÖÚ-?f»q?p™¿½ÅÉ?2Y“>ÙÔ‚?1ÃÊ>Ê.>jø¤½Ü?b¸Ì¾+½œa1?³ƒU¼Ìcv>F‚>3ÓB?§?0ľ( -½ÌÓ¾V/¿¾ð>cwƒ?ì–i½F“?V�¯?†tk?ÐÖ>iM*?<ç=Kr;¾yi*>ù';?èTÝ>úÑ>17a?ü1?*œ@Bonnx::PRelu_266J€î�·¾FWî>F5<ù?Zz?¼£f?Š<’¿8ÛÄ=ÌÖ½<‡|?œJæ=…?~Pj>ò½³G?d??¶.? �_?U�?ßZJ½ÎÇS?cy¾~¬?6`Ö=0+®>æ¬ð¾>˜¾ÔK‚?¶u4¿‰m¿>ú�¾¬Ó~?Cày¾Ì´u>NÉ�¾Eÿ?ˆ´g>lI=HvÁ=|›^?¹‘Ð>!¼?§|)?ö ?t16?*[¾Hü«=ƾ×£¾Rùi?¬5¿rØ\?\·k?Ȥ†?ŠcÔ½n>™½mòÀ>Úð;?_€c?¶'¢¾ÚØ<?v¥¾š“L?íÛ!?*œ@Bonnx::PRelu_267J€¸Ø§>OªQ?K%â>fø ?æe?Öëk?¸­Î¿À^$>Öy¾žÿe?=½M?½y‚?¾¥¾2b ¿xÓ ?ºÚZ?^°>¢gv?¼¤R?N׿ú&X¾fw;?�ÅÐ>ÛD?‹‚à>»Ê?F ¾ø?0W¾RXë¾»8’>9é€?ίã>Îû6?ž…Þ>c÷˜>|ù½¼ ? Ï’¾€ü§>'#”½N¥>l>(T=«d½‹Ó²<´v?†#¥¾ã>2 †?fŽ{>È!?=s‚?ↇ?Ë#)¿Ô
³¾î4d¾T|à>$>?Âðm¾ ^¯>•g>ªXt>©ÑÞ>*œ@Bonnx::PRelu_268J€¸;o>~Ü?ÿŠÿ½œ¿ö>¤5r?X[?†$¿î]à>‡‚¿ÿ?,™Ý>ºL{?�=!¾Ûb>šìú>ðóD?a$?Ð.M?Øí‰?2¾í<—SÓ>S,>X>.@?Ÿù?ko8?pÚN¾)ß?³¿k<m=ö¢>da~?©D¾6wi?äÌp¾7ÿ™>Ô%–¾sx ?Zíì==±ÿ>ŒÜ«=ÞHB=/1…¾W \?¦Oœ¾25%¾"í&?Ö7Ñ=,Ç>¦¡s?e€y¾—F?âg?�‘~?í~?ñ>5?bñð¾¿nh?f)!<,’ ?`
,>…Ò¾&a”¾}æ>*œ@Bonnx::PRelu_269J€Ô5½òj?û#L>KHq½<·x?*/ý>’Ý¿^¿M>Â<ß½ ˆh?^­™>B„?ð9:¾ƒ;¹¾…ã†>&Áͽຟ>Èei? j7?Ýо)<¦¾>ÑC?”í> íI?ëwA>V[ ¾üµ¯=²¸?.‘ª>}ì¿—‡>Õ+}?2a¿>êŠ?Žù>UÆ>ݱ'>–=ˆ¾6U>­ù?µK>üFå¾Ï/×>Öó‡>äc½<{FF¾>@?X€=¹×Î>ŒÆˆ?@¥?Æ’¤>Ì�?h?p^)¾›„…>Ø»¾…ê>h] ?¶Ý?ðÆ>ž„#¼÷Ë?®F]½*œ@Bonnx::PRelu_270J€<–½*Ü?¾ÂP?Fr2?®´„?SϾ¼ñÛ½úø>@šÃ¾p”?yœ½>Êe¿ÈüÄ;ÁB¾ã�-?ëÉ•>šÁá½ßØn?BÈÇ?üªÐ>û¶¡=ò瓾Ð%¦=Ì6$?ð‹€»úY羂£¾+‹’?¸æ¾]äA?*k^½˜;‘?gYò>x//?¸¶ >.Åš>´é> Ø¿>òFq?dL>ø1Ú¾ë*Ͼ’[í¾Z°Ô>†¢ä>™áÍ>eyÔ½¾}ϾFb\¾�+�?¤F‘=Gˆ½Ž­‡?X�?Gé?²0ã> $?2é >‡9£½^SŒ¾6¸>7«?vS¼êb0¾*œ@Bonnx::PRelu_271J€Ç"e? ‡|?> ý=[†?ÿ|?|ò¿ú?×é4?®Q>Š\x?팽@H|?ì¯>fŸ¶¼bÔÿ=š®>’¨1¾gt?§UH?AŠ”=ió>Ç´"?E葾j™M>a»R¿�¶Œ¾ŠU
�À=ä9¹¾±H<=ÝÍ’>rŒð>ˆ-N?ÎÉ=*©@Bonnx::PRelu_265__broadcastJ€î¢ò¾vã?i¤ ?‡˜H?>d}?XB‰>lM³¾±ß?Ìζ>ä^y?¢ùH??Є?7ðÖ¼IѨ>gh?ÖJ²>—ÞL?ºÚ~?·®0?ÁŸ>ª.?x0?:zÎ=Lyu?¤i*?~ˆ¾ÖÚ-?f»q?p™¿½ÅÉ?2Y“>ÙÔ‚?1ÃÊ>Ê.>jø¤½Ü?b¸Ì¾+½œa1?³ƒU¼Ìcv>F‚>3ÓB?§?0ľ( -½ÌÓ¾V/¿¾ð>cwƒ?ì–i½F“?V�¯?†tk?ÐÖ>iM*?<ç=Kr;¾yi*>ù';?èTÝ>úÑ>17a?ü1?*©@Bonnx::PRelu_266__broadcastJ€î�·¾FWî>F5<ù?Zz?¼£f?Š<’¿8ÛÄ=ÌÖ½<‡|?œJæ=…?~Pj>ò½³G?d??¶.? �_?U�?ßZJ½ÎÇS?cy¾~¬?6`Ö=0+®>æ¬ð¾>˜¾ÔK‚?¶u4¿‰m¿>ú�¾¬Ó~?Cày¾Ì´u>NÉ�¾Eÿ?ˆ´g>lI=HvÁ=|›^?¹‘Ð>!¼?§|)?ö ?t16?*[¾Hü«=ƾ×£¾Rùi?¬5¿rØ\?\·k?Ȥ†?ŠcÔ½n>™½mòÀ>Úð;?_€c?¶'¢¾ÚØ<?v¥¾š“L?íÛ!?*©@Bonnx::PRelu_267__broadcastJ€¸Ø§>OªQ?K%â>fø ?æe?Öëk?¸­Î¿À^$>Öy¾žÿe?=½M?½y‚?¾¥¾2b ¿xÓ ?ºÚZ?^°>¢gv?¼¤R?N׿ú&X¾fw;?�ÅÐ>ÛD?‹‚à>»Ê?F ¾ø?0W¾RXë¾»8’>9é€?ίã>Îû6?ž…Þ>c÷˜>|ù½¼ ? Ï’¾€ü§>'#”½N¥>l>(T=«d½‹Ó²<´v?†#¥¾ã>2 †?fŽ{>È!?=s‚?ↇ?Ë#)¿Ô
³¾î4d¾T|à>$>?Âðm¾ ^¯>•g>ªXt>©ÑÞ>*©@Bonnx::PRelu_268__broadcastJ€¸;o>~Ü?ÿŠÿ½œ¿ö>¤5r?X[?†$¿î]à>‡‚¿ÿ?,™Ý>ºL{?�=!¾Ûb>šìú>ðóD?a$?Ð.M?Øí‰?2¾í<—SÓ>S,>X>.@?Ÿù?ko8?pÚN¾)ß?³¿k<m=ö¢>da~?©D¾6wi?äÌp¾7ÿ™>Ô%–¾sx ?Zíì==±ÿ>ŒÜ«=ÞHB=/1…¾W \?¦Oœ¾25%¾"í&?Ö7Ñ=,Ç>¦¡s?e€y¾—F?âg?�‘~?í~?ñ>5?bñð¾¿nh?f)!<,’ ?`
,>…Ò¾&a”¾}æ>*©@Bonnx::PRelu_269__broadcastJ€Ô5½òj?û#L>KHq½<·x?*/ý>’Ý¿^¿M>Â<ß½ ˆh?^­™>B„?ð9:¾ƒ;¹¾…ã†>&Áͽຟ>Èei? j7?Ýо)<¦¾>ÑC?”í> íI?ëwA>V[ ¾üµ¯=²¸?.‘ª>}ì¿—‡>Õ+}?2a¿>êŠ?Žù>UÆ>ݱ'>–=ˆ¾6U>­ù?µK>üFå¾Ï/×>Öó‡>äc½<{FF¾>@?X€=¹×Î>ŒÆˆ?@¥?Æ’¤>Ì�?h?p^)¾›„…>Ø»¾…ê>h] ?¶Ý?ðÆ>ž„#¼÷Ë?®F]½*©@Bonnx::PRelu_270__broadcastJ€<–½*Ü?¾ÂP?Fr2?®´„?SϾ¼ñÛ½úø>@šÃ¾p”?yœ½>Êe¿ÈüÄ;ÁB¾ã�-?ëÉ•>šÁá½ßØn?BÈÇ?üªÐ>û¶¡=ò瓾Ð%¦=Ì6$?ð‹€»úY羂£¾+‹’?¸æ¾]äA?*k^½˜;‘?gYò>x//?¸¶ >.Åš>´é> Ø¿>òFq?dL>ø1Ú¾ë*Ͼ’[í¾Z°Ô>†¢ä>™áÍ>eyÔ½¾}ϾFb\¾�+�?¤F‘=Gˆ½Ž­‡?X�?Gé?²0ã> $?2é >‡9£½^SŒ¾6¸>7«?vS¼êb0¾*©@Bonnx::PRelu_271__broadcastJ€Ç"e? ‡|?> ý=[†?ÿ|?|ò¿ú?×é4?®Q>Š\x?팽@H|?ì¯>fŸ¶¼bÔÿ=š®>’¨1¾gt?§UH?AŠ”=ió>Ç´"?E葾j™M>a»R¿�¶Œ¾ŠU
¿c€?Oþ@>ÊŽ(X?ðL„?§ØÌ>¦>š>#`ž¾“6
=°eá½J‰³>;?™R=û„½NLÉ<:<ï>“*ܽ™¿Ö¾RKþ¾0‹¾¿tD?•‘—>cƒ?aõ¯¾Bоcüw?�z?? "?IÓ;¾�½>€Û¥=¨ü8=?<ù¿•O¾><ªŒ¼*œ@Bonnx::PRelu_272J€ØxÑ>ôa?Ä´$?ˆ(1>^Vq?„=
=°eá½J‰³>;?™R=û„½NLÉ<:<ï>“*ܽ™¿Ö¾RKþ¾0‹¾¿tD?•‘—>cƒ?aõ¯¾Bоcüw?�z?? "?IÓ;¾�½>€Û¥=¨ü8=?<ù¿•O¾><ªŒ¼*©@Bonnx::PRelu_272__broadcastJ€ØxÑ>ôa?Ä´$?ˆ(1>^Vq?„=
=v&ß<*W¢>~Ü›>Ð~?@ie¾zNV?Ìžæ=�”>D`v¾»As?0×> ¥�>L©w?ú°¼§š=P*0>?âê>îÓ?¾XndºŠj_=G�~?Ö„Å>¾uL>±O×»¢È„?£tÀ<ã?dVì>ñ¿:¿®+—>¼¿="¼;>¨¨Ä¾&àÍ>]w:•œ>sOD;è6n¾œ¸v=“ô?š—¾Ò=8>-Ä}?FqÄ=•‡2>CŠz?¬ €?ʵ½¾“"¿"ºò=vt=ð·ê½
V¾LøF><jμvùø>YÒ#?*œ@Bonnx::PRelu_273J€ÉÚ&?J«y?ë�>½¾KÈ=–ðè>5t=¤ÿ,=b?z½—m?ŸÜ¯½ÈFÏ;CùÃ=ÈH�<��Y=æ<t?–9?@@Ù>x– ?ãä>„|¼žÑ=>#€5>DŽm?g_ܼJ­E>Ä¢+<kêu?eôn?mH>Ö{?‚áŸ> ;ã>AÔa?.Ì…=HDg?’[l=¢µ?vy�?¹}?U(†>DÆ >ä#’½]•‡=ðß¾–Í‘>\[¸=™e†>~$?Žûx?7w¨<Ú•á>�ûs?ÞJN?ME>Š1̼»Ï†?»ª¨:f²S>x�=Ò˜ >´ŸØ>ígK?3¶¾*œ@Bonnx::PRelu_274J€öWL>gŽº‹z?¢Úã>7?Æ:Gã3>Ç <>lq<ö´G?"é>×`>dû&>õ>?Æã >ž'|?ˆj9?Au?Ʀz<'N¾>`4/>p“?Xkq?)&=Q ĹŔ«>¤‘>oq:?°Õ•»nl{?:jr?-»€?ê›y?#|?½ç>§Ñ?G0Í=•ïi>@‘~?¡÷G?àQu?È~?ñÎ?HJt?Þb>UD—>ò ->ZÜ€?}Å>áÜ}?μ%=ðëê>™‘B>ŽùU>µˆ?þL?\Ã4=&–y?x1½<-žl>iöÌ="‹ >œv‘=çñ’>iÌž=Z*
V¾LøF><jμvùø>YÒ#?*©@Bonnx::PRelu_273__broadcastJ€ÉÚ&?J«y?ë�>½¾KÈ=–ðè>5t=¤ÿ,=b?z½—m?ŸÜ¯½ÈFÏ;CùÃ=ÈH�<��Y=æ<t?–9?@@Ù>x– ?ãä>„|¼žÑ=>#€5>DŽm?g_ܼJ­E>Ä¢+<kêu?eôn?mH>Ö{?‚áŸ> ;ã>AÔa?.Ì…=HDg?’[l=¢µ?vy�?¹}?U(†>DÆ >ä#’½]•‡=ðß¾–Í‘>\[¸=™e†>~$?Žûx?7w¨<Ú•á>�ûs?ÞJN?ME>Š1̼»Ï†?»ª¨:f²S>x�=Ò˜ >´ŸØ>ígK?3¶¾*©@Bonnx::PRelu_274__broadcastJ€öWL>gŽº‹z?¢Úã>7?Æ:Gã3>Ç <>lq<ö´G?"é>×`>dû&>õ>?Æã >ž'|?ˆj9?Au?Ʀz<'N¾>`4/>p“?Xkq?)&=Q ĹŔ«>¤‘>oq:?°Õ•»nl{?:jr?-»€?ê›y?#|?½ç>§Ñ?G0Í=•ïi>@‘~?¡÷G?àQu?È~?ñÎ?HJt?Þb>UD—>ò ->ZÜ€?}Å>áÜ}?μ%=ðëê>™‘B>ŽùU>µˆ?þL?\Ã4=&–y?x1½<-žl>iöÌ="‹ >œv‘=çñ’>iÌž=Z*
input!


+73
View File
@@ -0,0 +1,73 @@
# The WebGPU execution provider has no PReLU kernel. The upscaler is 34 convolutions
# with a PReLU after every one of them, so the runtime splits the graph 33 times:
# each activation travels off the GPU to the processor and the result travels back,
# a 64-channel map in both directions, per tile. A machine with a good graphics chip
# was therefore not exporting any faster for having it.
#
# Relu, Neg, Mul and Sub it does have, and
# PRelu(x) = Relu(x) - slope * Relu(-x)
# holds exactly, negative slopes included, so this rewrites the activations into
# those four and leaves the weights untouched.
#
# python3 realesr-gpu.py <downloaded>.onnx public/models/realesr-general-x4v3.onnx
#
# The source is the x4v3 model of https://github.com/xinntao/Real-ESRGAN
# (realesr-general-x4v3.pth, converted to ONNX at opset 17).
import sys
import numpy as np
import onnx
from onnx import TensorProto, helper, numpy_helper
def rewrite(src, dst):
model = onnx.load(src)
graph = model.graph
rank = len(graph.input[0].type.tensor_type.shape.dim)
by_name = {i.name: i for i in graph.initializer}
nodes, made = [], 0
for node in graph.node:
if node.op_type != "PRelu":
nodes.append(node)
continue
x, slope = node.input
# The slope comes out of PyTorch as (C,1,1) and has to line up with a
# (1,C,H,W) activation, so give it the batch axis it is missing.
s = numpy_helper.to_array(by_name[slope])
if s.shape != (1,) + tuple(s.shape):
s = s.reshape((1,) + tuple(s.shape))
name = f"{slope}__broadcast"
if name not in by_name:
graph.initializer.append(numpy_helper.from_array(s, name))
by_name[name] = graph.initializer[-1]
slope = name
p, n, q, scaled = f"{node.output[0]}.pos", f"{node.output[0]}.neg", f"{node.output[0]}.relu", f"{node.output[0]}.scaled"
nodes += [
helper.make_node("Relu", [x], [p], name=p),
helper.make_node("Neg", [x], [n], name=n),
helper.make_node("Relu", [n], [q], name=q),
helper.make_node("Mul", [q, slope], [scaled], name=scaled),
helper.make_node("Sub", [p, scaled], [node.output[0]], name=node.name),
]
made += 1
del graph.node[:]
graph.node.extend(nodes)
# The slopes the PReLU nodes used to read are now unreachable, and the runtime
# warns about every one of them while it loads unless they go.
used = {name for node in graph.node for name in node.input}
kept = [i for i in graph.initializer if i.name in used]
print(f"dropping {len(graph.initializer) - len(kept)} unused initializers")
del graph.initializer[:]
graph.initializer.extend(kept)
onnx.checker.check_model(model)
onnx.save(model, dst)
print(f"rewrote {made} PReLU nodes -> {dst}")
assert made, "no PReLU node found: wrong model?"
assert rank >= 2
if __name__ == "__main__":
rewrite(sys.argv[1], sys.argv[2])
+9
View File
@@ -9,6 +9,11 @@ import type * as Ort from 'onnxruntime-web';
// Both the runtime (served next to canvaskit.wasm, see scripts/copy-wasm.mjs)
// and the model (public/models) are static files; nothing here changes what the
// server can do.
//
// The model is not the file as published: its 33 PReLU activations are written
// out as Relu/Neg/Mul/Sub, because the WebGPU provider has no PReLU kernel and
// would otherwise hand every activation to the processor and take it back, 33
// times per tile. scripts/realesr-gpu.py is that rewrite and explains it.
const MODEL_URL = '/models/realesr-general-x4v3.onnx';
// The wasm dir, not the file: the runtime picks its own name inside it.
@@ -54,6 +59,10 @@ function load(): Promise<Loaded> {
// A laptop with two GPUs would otherwise hand this to the one built into
// the processor. The model is the export, so ask for the fast one.
ort.env.webgpu.powerPreference = 'high-performance';
// env.logLevel looks like a switch for the runtime's own warnings and is not
// one — it is read when the module initialises, before this runs, so a level
// set here silences nothing. Left alone, they are worth reading: the last one
// to appear said the graph was being split between the chip and the processor.
const session = await ort.InferenceSession.create(MODEL_URL, { executionProviders: ['webgpu'] }).catch(() =>
ort.InferenceSession.create(MODEL_URL, { executionProviders: ['wasm'] })
);