You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

padding.cpp 2.1 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #include "./legacy_checker.h"
  2. #include "megbrain/comp_node_env.h"
  3. #include "megbrain/gopt/inference.h"
  4. #include "megbrain/opr/basic_arith.h"
  5. #include "megbrain/opr/dnn/convolution.h"
  6. #include "megbrain/opr/tensor_manip.h"
  7. #include "megbrain/serialization/serializer.h"
  8. #include "megbrain/test/autocheck.h"
  9. #include "megbrain/test/helper.h"
  10. #include "megbrain/test/megdnn_helper.h"
  11. #include "megdnn/dtype.h"
  12. #include "megdnn/oprs/base.h"
  13. #include <gmock/gmock.h>
  14. #include <cmath>
  15. #include <memory>
  16. #include <random>
  17. using namespace std;
  18. using namespace mgb;
  19. namespace {
  20. TEST(TestOprDNN, PaddingForwardSerialization) {
  21. using namespace serialization;
  22. auto fname = output_file("PaddingForwardTest");
  23. auto dump = [&]() {
  24. opr::Padding::Param param;
  25. param.padding_mode = megdnn::param::Padding::PaddingMode(0);
  26. param.front_offset_dim0 = 3;
  27. param.front_offset_dim1 = 3;
  28. param.front_offset_dim2 = 3;
  29. param.front_offset_dim3 = 3;
  30. param.front_offset_dim4 = 0;
  31. param.front_offset_dim5 = 0;
  32. param.front_offset_dim6 = 0;
  33. param.back_offset_dim0 = 0;
  34. param.back_offset_dim1 = 0;
  35. param.back_offset_dim2 = 0;
  36. param.back_offset_dim3 = 0;
  37. param.back_offset_dim4 = 0;
  38. param.back_offset_dim5 = 0;
  39. param.back_offset_dim6 = 0;
  40. param.padding_val = 0;
  41. auto cn = CompNode::load("xpu");
  42. auto graph = ComputingGraph::make();
  43. HostTensorND inp_host{cn, {32, 4, 24, 24}, dtype::Float32()};
  44. auto inp = opr::ImmutableTensor::make(*graph, inp_host);
  45. auto opr = opr::PaddingForward::make(inp, param, {});
  46. auto dumper = GraphDumper::make(OutputFile::make_fs(fname.c_str()));
  47. auto rst = dumper->dump({opr});
  48. ASSERT_EQ(rst.outputs.size(), 1u);
  49. };
  50. auto load = [&]() {
  51. auto loader = GraphLoader::make(InputFile::make_fs(fname.c_str()));
  52. auto rst = loader->load();
  53. ASSERT_EQ(rst.output_var_list.size(), 1u);
  54. };
  55. dump();
  56. load();
  57. }
  58. } // namespace

MegEngine 安装包中集成了使用 GPU 运行代码所需的 CUDA 环境,不用区分 CPU 和 GPU 版。 如果想要运行 GPU 程序,请确保机器本身配有 GPU 硬件设备并安装好驱动。 如果你想体验在云端 GPU 算力平台进行深度学习开发的感觉,欢迎访问 MegStudio 平台