Print network architecture in cpp jit

We don’t have any built-in utils for this, but you can do a simple version manually:

#include <torch/script.h>

#include <iostream>
#include <memory>

void tabs(size_t num) {
  for (size_t i = 0; i < num; i++) {
    std::cout << "\t";
  }
}

void print_modules(const torch::jit::script::Module& module, size_t level = 0) {
  std::cout << module.name().qualifiedName() << " (\n";
  for (const auto& module : module.get_modules()) {
    tabs(level + 1);
    print_modules(module.module, level + 1);
  }
  tabs(level);
  std::cout << ")\n";
}

int main(int argc, const char *argv[]) {
  torch::jit::script::Module container = torch::jit::load("m.pt");
  print_modules(container);
  return 0;
}