Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
risemeup1 committed Jan 22, 2025
1 parent a24dee7 commit 5af9855
Show file tree
Hide file tree
Showing 35 changed files with 669 additions and 449 deletions.
14 changes: 8 additions & 6 deletions paddle2onnx/convert.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ def export(
filename_without_extension, _ = os.path.splitext(filename)
save_dir = os.path.join(tmp_dir, filename_without_extension)
if model_filename.endswith(".pdmodel"):
if (os.path.exists(model_filename) and os.path.exists(params_filename)):
if os.path.exists(model_filename) and os.path.exists(params_filename):
# dir_and_file, extension = os.path.splitext(model_filename)
# filename = os.path.basename(model_filename)
# filename_without_extension, _ = os.path.splitext(filename)
Expand All @@ -79,7 +79,10 @@ def export(
if op.name() == "pd_op.fetch":
fetch = op.operands_source()
# save_dir = os.path.join(tmp_dir, filename_without_extension)
paddle.static.save_inference_model(save_dir, feed, fetch, exe, program=program)
with paddle.pir_utils.IrGuard():
paddle.static.save_inference_model(
save_dir, feed, fetch, exe, program=program
)
model_filename = save_dir + ".json"
params_filename = save_dir + ".pdiparams"
assert os.path.exists(
Expand All @@ -90,17 +93,16 @@ def export(
), f"Pir Params file {params_filename} does not exist."
else:
with paddle.pir_utils.OldIrGuard():
program=paddle.load(model_filename)
program = paddle.load(model_filename)
pir_program = paddle.pir.translate_to_pir(program.desc)
save_dir = os.path.join(tmp_dir, filename_without_extension)
model_filename=save_dir+ ".json"
model_filename = save_dir + ".json"
with paddle.pir_utils.IrGuard():
paddle.save(pir_program,model_filename)
paddle.save(pir_program, model_filename)
assert os.path.exists(
model_filename
), f"Pir Model file {model_filename} does not exist."


deploy_backend = deploy_backend.lower()
if custom_op_info is None:
onnx_model_str = c_p2o.export(
Expand Down
1 change: 1 addition & 0 deletions paddle2onnx/mapper/activation/activation.cc
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ REGISTER_PIR_MAPPER(sqrt, ActivationMapper)
REGISTER_MAPPER(square, SquareMapper)
REGISTER_PIR_MAPPER(square, SquareMapper)
REGISTER_MAPPER(tan, ActivationMapper)
REGISTER_PIR_MAPPER(hardtanh, ActivationMapper)
REGISTER_PIR_MAPPER(tan, ActivationMapper)
REGISTER_MAPPER(tanh, ActivationMapper)
REGISTER_PIR_MAPPER(tanh, ActivationMapper)
Expand Down
2 changes: 1 addition & 1 deletion paddle2onnx/mapper/exporter.cc
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ bool ModelExporter::IsOpsRegistered(const PaddlePirParser& pir_parser,
if (op->name() == "pd_op.if") {
continue;
}
if (op->name() == "pd_op.while") {
if (op->name() == "pd_op.while"|| op->name() == "pd_op.select_input") {
continue;
}
std::string op_name = convert_pir_op_name(op->name());
Expand Down
1 change: 1 addition & 0 deletions paddle2onnx/mapper/quantize/dequantize_linear.cc
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

namespace paddle2onnx {
REGISTER_MAPPER(dequantize_linear, DequantizeLinearMapper)
REGISTER_PIR_MAPPER(dequantize_linear, DequantizeLinearMapper)

int32_t DequantizeLinearMapper::GetMinOpsetVersion(bool verbose) { return 13; }

Expand Down
10 changes: 10 additions & 0 deletions paddle2onnx/mapper/quantize/dequantize_linear.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,16 @@ class DequantizeLinearMapper : public Mapper {
}
}

DequantizeLinearMapper(const PaddlePirParser& p, OnnxHelper* helper,
int64_t i,bool c)
:Mapper(p, helper, i, c) {
GetAttr("quant_axis", &quant_axis_);
GetAttr("bit_length", &bit_length_);
if (quant_axis_ == -1) {
quant_axis_ = 1;
}
}

int32_t GetMinOpsetVersion(bool verbose) override;
void Opset10() override;

Expand Down
1 change: 1 addition & 0 deletions paddle2onnx/mapper/quantize/quantize_linear.cc
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

namespace paddle2onnx {
REGISTER_MAPPER(quantize_linear, QuantizeLinearMapper)
REGISTER_PIR_MAPPER(quantize_linear, QuantizeLinearMapper)

int32_t QuantizeLinearMapper::GetMinOpsetVersion(bool verbose) { return 13; }

Expand Down
12 changes: 12 additions & 0 deletions paddle2onnx/mapper/quantize/quantize_linear.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,18 @@ class QuantizeLinearMapper : public Mapper {
}
}

QuantizeLinearMapper(const PaddlePirParser& p, OnnxHelper* helper,
int64_t i,bool c)
:Mapper(p, helper, i, c) {
GetAttr("quant_axis", &quant_axis_);
GetAttr("bit_length", &bit_length_);
if (quant_axis_ == -1) {
quant_axis_ = 1;
}
if (HasAttr("round_type")) {
GetAttr("round_type", &round_type_);
}
}
int32_t GetMinOpsetVersion(bool verbose) override;
void Opset10() override;

Expand Down
10 changes: 2 additions & 8 deletions tests/onnxbase.py
Original file line number Diff line number Diff line change
Expand Up @@ -469,14 +469,8 @@ def run(self):
params_file = pdiparams_path
if not os.path.exists(params_file):
params_file = ""

# clip extra
model_file = None
if paddle.get_flags("FLAGS_enable_pir_api")["FLAGS_enable_pir_api"]:
model_file = original_model_file
else:
model_file = os.path.join(self.name, "cliped_model.pdmodel")
self.clip_extra_program_only(original_model_file, model_file)
# # clip extra
model_file = original_model_file

for v in self._version:
onnx_model_str = paddle2onnx.export(
Expand Down
75 changes: 43 additions & 32 deletions tests/test_Conv2D_Dropout.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,25 @@
import paddle
from onnxbase import APIOnnx
from onnxbase import randtool
from onnxbase import _test_with_pir


class Net(paddle.nn.Layer):
"""
simple Net
"""

def __init__(self,
stride=1,
padding=0,
dilation=1,
groups=1,
padding_mode='zeros',
weight_attr=None,
bias_attr=None,
data_format='NCHW'):
def __init__(
self,
stride=1,
padding=0,
dilation=1,
groups=1,
padding_mode="zeros",
weight_attr=None,
bias_attr=None,
data_format="NCHW",
):
super(Net, self).__init__()
self._bn = paddle.nn.Conv2D(
in_channels=1,
Expand All @@ -43,7 +46,8 @@ def __init__(self,
padding_mode=padding_mode,
weight_attr=weight_attr,
bias_attr=bias_attr,
data_format=data_format)
data_format=data_format,
)
self._drop = paddle.nn.Dropout(p=0.5)

def forward(self, inputs):
Expand All @@ -55,6 +59,7 @@ def forward(self, inputs):
return x


@_test_with_pir
def test_Conv2D_Dropout_9():
"""
api: paddle.Conv2D_Dropout
Expand All @@ -63,14 +68,15 @@ def test_Conv2D_Dropout_9():
op = Net()
op.eval()
# net, name, ver_list, delta=1e-6, rtol=1e-5
obj = APIOnnx(op, 'Conv2D_Dropout', [9])
obj = APIOnnx(op, "Conv2D_Dropout", [9])
obj.set_input_data(
"input_data",
paddle.to_tensor(
randtool("float", -1, 1, [3, 1, 10, 10]).astype('float32')))
paddle.to_tensor(randtool("float", -1, 1, [3, 1, 10, 10]).astype("float32")),
)
obj.run()


@_test_with_pir
def test_Conv2D_Dropout_10():
"""
api: paddle.Conv2D_Dropout
Expand All @@ -79,14 +85,15 @@ def test_Conv2D_Dropout_10():
op = Net()
op.eval()
# net, name, ver_list, delta=1e-6, rtol=1e-5
obj = APIOnnx(op, 'Conv2D_Dropout', [10])
obj = APIOnnx(op, "Conv2D_Dropout", [10])
obj.set_input_data(
"input_data",
paddle.to_tensor(
randtool("float", -1, 1, [3, 1, 10, 10]).astype('float32')))
paddle.to_tensor(randtool("float", -1, 1, [3, 1, 10, 10]).astype("float32")),
)
obj.run()


@_test_with_pir
def test_Conv2D_Dropout_11():
"""
api: paddle.Conv2D_Dropout
Expand All @@ -95,14 +102,15 @@ def test_Conv2D_Dropout_11():
op = Net()
op.eval()
# net, name, ver_list, delta=1e-6, rtol=1e-5
obj = APIOnnx(op, 'Conv2D_Dropout', [11])
obj = APIOnnx(op, "Conv2D_Dropout", [11])
obj.set_input_data(
"input_data",
paddle.to_tensor(
randtool("float", -1, 1, [3, 1, 10, 10]).astype('float32')))
paddle.to_tensor(randtool("float", -1, 1, [3, 1, 10, 10]).astype("float32")),
)
obj.run()


@_test_with_pir
def test_Conv2D_Dropout_12():
"""
api: paddle.Conv2D_Dropout
Expand All @@ -111,14 +119,15 @@ def test_Conv2D_Dropout_12():
op = Net()
op.eval()
# net, name, ver_list, delta=1e-6, rtol=1e-5
obj = APIOnnx(op, 'Conv2D_Dropout', [12])
obj = APIOnnx(op, "Conv2D_Dropout", [12])
obj.set_input_data(
"input_data",
paddle.to_tensor(
randtool("float", -1, 1, [3, 1, 10, 10]).astype('float32')))
paddle.to_tensor(randtool("float", -1, 1, [3, 1, 10, 10]).astype("float32")),
)
obj.run()


@_test_with_pir
def test_Conv2D_Dropout_padding_0_9():
"""
api: paddle.Conv2D_Dropout
Expand All @@ -127,14 +136,15 @@ def test_Conv2D_Dropout_padding_0_9():
op = Net(padding=[1, 2])
op.eval()
# net, name, ver_list, delta=1e-6, rtol=1e-5
obj = APIOnnx(op, 'Conv2D_Dropout', [9])
obj = APIOnnx(op, "Conv2D_Dropout", [9])
obj.set_input_data(
"input_data",
paddle.to_tensor(
randtool("float", -1, 1, [3, 1, 10, 10]).astype('float32')))
paddle.to_tensor(randtool("float", -1, 1, [3, 1, 10, 10]).astype("float32")),
)
obj.run()


@_test_with_pir
def test_Conv2D_Dropout_padding_1_9():
"""
api: paddle.Conv2D_Dropout
Expand All @@ -143,14 +153,15 @@ def test_Conv2D_Dropout_padding_1_9():
op = Net(padding=[1, 2, 3, 4])
op.eval()
# net, name, ver_list, delta=1e-6, rtol=1e-5
obj = APIOnnx(op, 'Conv2D_Dropout', [9])
obj = APIOnnx(op, "Conv2D_Dropout", [9])
obj.set_input_data(
"input_data",
paddle.to_tensor(
randtool("float", -1, 1, [3, 1, 10, 10]).astype('float32')))
paddle.to_tensor(randtool("float", -1, 1, [3, 1, 10, 10]).astype("float32")),
)
obj.run()


@_test_with_pir
def test_Conv2D_Dropout_padding_2_9():
"""
api: paddle.Conv2D_Dropout
Expand All @@ -159,9 +170,9 @@ def test_Conv2D_Dropout_padding_2_9():
op = Net(padding=[[0, 0], [0, 0], [1, 2], [2, 3]])
op.eval()
# net, name, ver_list, delta=1e-6, rtol=1e-5
obj = APIOnnx(op, 'Conv2D_Dropout', [9])
obj = APIOnnx(op, "Conv2D_Dropout", [9])
obj.set_input_data(
"input_data",
paddle.to_tensor(
randtool("float", -1, 1, [3, 1, 10, 10]).astype('float32')))
obj.run()
paddle.to_tensor(randtool("float", -1, 1, [3, 1, 10, 10]).astype("float32")),
)
obj.run()
Loading

0 comments on commit 5af9855

Please sign in to comment.