1- #include < torch/torch.h>
1+ #include < torch/script.h> // One-stop header.
2+ /* #include <torch/torch.h> */
23#include < iostream>
34#include < CoverageControlTorch/coverage_system.h>
5+ #include < CoverageControlTorch/type_conversions.h>
46
57using namespace CoverageControl ;
6- int main () {
8+
9+ int main (int argc, const char * argv[]) {
710
811 Parameters params;
912 std::vector<Point2> robot_positions;
@@ -21,21 +24,103 @@ int main() {
2124
2225 WorldIDF world_idf (params);
2326 world_idf.AddNormalDistribution (BivariateNormalDistribution (Point2 (500 , 500 ), 10 ));
27+ world_idf.AddNormalDistribution (BivariateNormalDistribution (Point2 (300 , 500 ), 10 ));
2428
2529 CoverageControlTorch::CoverageSystem env (params, world_idf, robot_positions);
2630
31+ std::string base_dir = " ./k3_params/" ;
32+ std::string py_dir = base_dir + " py/" ;
33+ std::string cpp_dir = base_dir + " cpp/" ;
34+
35+ // Get names of all files in py_dir
36+ for (const auto & entry : std::filesystem::directory_iterator (py_dir)) {
37+ std::string filename = entry.path ().filename ();
38+ std::string py_filename = py_dir + filename;
39+ std::string cpp_filename = cpp_dir + filename;
40+ std::cout << filename << std::endl;
41+ torch::Tensor tensor = GetTensorFromBytes (py_filename);
42+ std::cout << filename << " " << tensor.sizes () << std::endl;
43+ torch::save (tensor, cpp_filename);
44+ torch::Tensor temp;
45+ torch::load (temp, cpp_filename);
46+ std::cout << temp.sizes () << std::endl;
47+ std::cout << torch::equal (tensor, temp) << std::endl;
48+ }
49+ /* int nlayers = 5; */
50+ /* int K = 3; */
51+
52+ /* for(int l = 0; l < nlayers; ++l) { */
53+ /* std::cout << "Layer: " << l << std::endl; */
54+ /* std::string bname = "bias_" + std::to_string(l); */
55+ /* std::string bfilename = "./k3_params/py/" + bname + ".pt"; */
56+ /* torch::Tensor btensor = GetTensorFromBytes(bfilename); */
57+ /* std::cout << bname << " " << btensor.sizes() << std::endl; */
58+ /* torch::save(btensor, "./k3_params/cpp/" + bname + ".pt"); */
59+ /* for(int k = 0; k < K + 1; ++k) { */
60+ /* std::cout << "K: " << k << std::endl; */
61+ /* std::string name = "lin_" + std::to_string(l) + "_" + std::to_string(k); */
62+ /* std::string filename = "./k3_params/py/" + name + ".pt"; */
63+ /* torch::Tensor tensor = GetTensorFromBytes(filename); */
64+ /* std::cout << name << " " << tensor.sizes() << std::endl; */
65+ /* torch::save(tensor, "./k3_params/cpp/" + name + ".pt"); */
66+ /* torch::Tensor temp; */
67+ /* torch::load(temp, "./k3_params/cpp/" + name + ".pt"); */
68+ /* std::cout << temp.sizes() << std::endl; */
69+ /* std::cout << torch::equal(tensor, temp) << std::endl; */
70+ /* } */
71+ /* } */
72+
73+
74+
75+ /* env.LoadCNNBackBoneJIT(argv[1]); */
76+ /* env.LoadCNNBackBone(argv[1]); */
77+
78+ /* std::string tensor_file_name = std::string(argv[2]); */
79+ /* std::vector<char> f = get_the_bytes(tensor_file_name); */
80+ /* torch::IValue x = torch::pickle_load(f); */
81+ /* torch::Tensor my_tensor = x.toTensor(); */
82+ /* std::cout << my_tensor.sizes() << std::endl; */
83+ /* std::cout << torch::sum(my_tensor) << std::endl; */
84+
85+ /* my_tensor = my_tensor.view({-1, my_tensor.size(-3), my_tensor.size(-2), my_tensor.size(-1)}); */
86+ /* torch::Tensor out = env.GetGNNFeatures(my_tensor); */
87+ /* torch::save(out, "out.pt"); */
88+ /* torch::jit::script::Module container = torch::jit::load(tensor_file_name); */
89+ /* torch::Tensor tensor = container.attr("tensor").toTensor(); */
90+ /* std::cout << tensor.sizes() << std::endl; */
91+ /* std::cout << torch::sum(tensor) << std::endl; */
92+
93+
94+
2795 /* env.PlotInitMap("./", "init"); */
2896
29- auto comm_map = env.GetAllRobotsCommunicationMaps (256 );
30- std::cout << " Computed communicaiton maps" << std::endl;
31- std::cout << comm_map[0 ][0 ].to_sparse () << std::endl;
32- std::cout << comm_map[0 ][1 ].to_sparse () << std::endl;
97+ /* auto comm_map = env.GetAllRobotsCommunicationMaps(32); */
98+ /* torch::save(comm_map, "comm_map.pt"); */
99+
100+ /* MapType world_map = env.GetWorldIDF(); */
101+ /* torch::Tensor world_map_tensor = CoverageControlTorch::ToTensor(world_map).clone(); */
102+ /* torch::save(world_map_tensor, "world_map.pt"); */
33103
104+ /* torch::jit::script::Module torchvision_resizer_; */
105+ /* torchvision_resizer_ = torch::jit::load("./python/ts_jit/TorchVisionResize_32.pt"); */
34106
35- torch::Tensor a = torch::rand ({5 , 2 });
36- std::cout << a << std::endl;
37- torch::Tensor b = a.transpose (1 , 0 );
38- std::cout << b << std::endl;
107+ /* torch::Tensor output = torchvision_resizer_.forward({comm_map}).toTensor(); */
108+ /* torch::save(output, "comm_map_resized.pt"); */
39109
110+ /* torch::jit::script::Module module; */
111+ /* try { */
112+ /* // Deserialize the ScriptModule from a file using torch::jit::load(). */
113+ /* module = torch::jit::load(argv[1]); */
114+ /* for (auto const ¶ms : module.named_parameters()) { */
115+ /* std::cout << params.name << " " << params.value.sizes() << std::endl; */
116+ /* std::cout << params.value << std::endl; */
117+ /* } */
118+ /* } */
119+ /* catch (const c10::Error& e) { */
120+ /* std::cerr << "error loading the model\n"; */
121+ /* return -1; */
122+ /* } */
40123
124+ std::cout << " ok\n " ;
125+ return 0 ;
41126}
0 commit comments