#include #include #include #include "../models/models.h" using namespace vision::models; template void convert_and_save_model( const std::string& input_path, const std::string& output_path) { Model network; torch::load(network, input_path); torch::save(network, output_path); auto index = input_path.find("_python"); auto name = input_path.substr(0, index); std::cout << "finished loading and saving " << name << std::endl; } int main(int argc, const char* argv[]) { convert_and_save_model("alexnet_python.pt", "alexnet_cpp.pt"); convert_and_save_model("vgg11_python.pt", "vgg11_cpp.pt"); convert_and_save_model("vgg13_python.pt", "vgg13_cpp.pt"); convert_and_save_model("vgg16_python.pt", "vgg16_cpp.pt"); convert_and_save_model("vgg19_python.pt", "vgg19_cpp.pt"); convert_and_save_model("vgg11bn_python.pt", "vgg11bn_cpp.pt"); convert_and_save_model("vgg13bn_python.pt", "vgg13bn_cpp.pt"); convert_and_save_model("vgg16bn_python.pt", "vgg16bn_cpp.pt"); convert_and_save_model("vgg19bn_python.pt", "vgg19bn_cpp.pt"); convert_and_save_model("resnet18_python.pt", "resnet18_cpp.pt"); convert_and_save_model("resnet34_python.pt", "resnet34_cpp.pt"); convert_and_save_model("resnet50_python.pt", "resnet50_cpp.pt"); convert_and_save_model("resnet101_python.pt", "resnet101_cpp.pt"); convert_and_save_model("resnet152_python.pt", "resnet152_cpp.pt"); convert_and_save_model( "resnext50_32x4d_python.pt", "resnext50_32x4d_cpp.pt"); convert_and_save_model( "resnext101_32x8d_python.pt", "resnext101_32x8d_cpp.pt"); convert_and_save_model( "squeezenet1_0_python.pt", "squeezenet1_0_cpp.pt"); convert_and_save_model( "squeezenet1_1_python.pt", "squeezenet1_1_cpp.pt"); convert_and_save_model( "densenet121_python.pt", "densenet121_cpp.pt"); convert_and_save_model( "densenet169_python.pt", "densenet169_cpp.pt"); convert_and_save_model( "densenet201_python.pt", "densenet201_cpp.pt"); convert_and_save_model( "densenet161_python.pt", "densenet161_cpp.pt"); convert_and_save_model( "mobilenetv2_python.pt", "mobilenetv2_cpp.pt"); convert_and_save_model( "shufflenetv2_x0_5_python.pt", "shufflenetv2_x0_5_cpp.pt"); convert_and_save_model( "shufflenetv2_x1_0_python.pt", "shufflenetv2_x1_0_cpp.pt"); convert_and_save_model( "shufflenetv2_x1_5_python.pt", "shufflenetv2_x1_5_cpp.pt"); convert_and_save_model( "shufflenetv2_x2_0_python.pt", "shufflenetv2_x2_0_cpp.pt"); convert_and_save_model("googlenet_python.pt", "googlenet_cpp.pt"); convert_and_save_model( "inceptionv3_python.pt", "inceptionv3_cpp.pt"); convert_and_save_model( "mnasnet0_5_python.pt", "mnasnet0_5_cpp.pt"); convert_and_save_model( "mnasnet0_75_python.pt", "mnasnet0_75_cpp.pt"); convert_and_save_model( "mnasnet1_0_python.pt", "mnasnet1_0_cpp.pt"); convert_and_save_model( "mnasnet1_3_python.pt", "mnasnet1_3_cpp.pt"); return 0; }