Repository: linyicheng1/LET-NET
Branch: main
Commit: 64dfae986d45
Files: 10
Total size: 73.2 KB
Directory structure:
gitextract_15a7jtc0/
├── CMakeLists.txt
├── README.md
├── main.cpp
├── model/
│ ├── letnet-gray.onnx
│ ├── letnet-gray.pt
│ ├── letnet.onnx
│ ├── letnet.pt
│ └── model.param
├── tracking.cpp
└── tracking.h
================================================
FILE CONTENTS
================================================
================================================
FILE: CMakeLists.txt
================================================
cmake_minimum_required(VERSION 3.10)
project(demo)
set(CMAKE_CXX_STANDARD 14)
SET(CMAKE_BUILD_TYPE Release)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O3 -march=native ")
set(ncnn_DIR "/home/c211/lyc/ncnn/alexnet_demo/ncnn/build/install/lib/cmake/ncnn" CACHE PATH "Directory that contains ncnnConfig.cmake")
find_package(OpenCV REQUIRED)
find_package(ncnn REQUIRED)
add_executable(demo main.cpp tracking.cpp)
target_link_libraries(demo
ncnn
${OpenCV_LIBS}
-fopenmp
)
================================================
FILE: README.md
================================================
# LET-NET: A lightweight CNN network for sparse corners extraction and tracking
LET-NET implements an extremely lightweight network for feature point extraction and image consistency computation. The network can process a 240 x 320 image on a CPU in about 5ms. Combined with LK optical flow, it breaks the assumption of brightness consistency and performs well on dynamic lighting as well as blurred images.
<div display:inline>
<a href="https://www.bilibili.com/video/BV1gz4y1V77M/?vd_source=4dd69fa6d40221a0fa0733def5c4708a#reply576226249"><img src="assets/bilibili3.png" width=30% /></a>
<a href="https://www.bilibili.com/video/BV1gz4y1V77M/?vd_source=4dd69fa6d40221a0fa0733def5c4708a#reply576226249"><img src="assets/bilibili2.png" width=30% /></a>
<a href="https://www.bilibili.com/video/BV1gz4y1V77M/?vd_source=4dd69fa6d40221a0fa0733def5c4708a#reply576226249"><img src="assets/bilibili.png" width=30% /></a>
</div>
## News
!!! **A new [version](https://github.com/linyicheng1/LET-NET2) with end-to-end training has been made publicly available.**
1. The LET-NET training code is released at https://github.com/linyicheng1/LET-NET-Train.
2. Gray Image is also suport in LET-NET, you can get pytorch and onnx model tpye in `./model/`
3. [LET-VINS](https://github.com/linyicheng1/LET-NET/blob/main/assets/VINS-Mono.zip) Demo run on UMA-VI dataset is released.
4. Our proposed LET-VINS won the second place in the VIO track of the ICCV2023SLAM Challenge, which is the best performance among the traditional methods.
5. The preprinted paper was posted at [here](https://arxiv.org/abs/2310.15655).
<img src=https://github.com/linyicheng1/LET-NET/assets/50650063/f4e96620-925e-4ff8-a2a9-c8af202c3b99 border=10 width=40%>
## Related Paper
- **Breaking of brightness consistency in optical flow with a lightweight CNN network**,Yicheng Lin, Shuo Wang, Yunlong Jiang, Bin Han, arXiv:2310.15655, [pdf](https://arxiv.org/pdf/2310.15655.pdf)
## 1. Prerequisites
- OpenCV (https://docs.opencv.org/3.4/d7/d9f/tutorial_linux_install.html)
- ncnn (https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-linux)
> Notes: After installing ncnn, you need to change the path in CMakeLists.txt
```
set(ncnn_DIR "<your_path>/install/lib/cmake/ncnn" CACHE PATH "Directory that contains ncnnConfig.cmake")
```
## 2. Build
```
mkdir build && cd build
cmake .. && make -j4
```
## 3. Run demo
You can enter the path to a video or two images.
```
./build/demo <path_param> <path_bin> <path_video>
```
or
```
./build/demo <path_param> <path_bin> <path_img_1> <path_img_2>
```
For example using the data we provide:
```
./build/demo ./model/model.param ./model/model.bin ./assets/nyu_snippet.mp4
```
You should see the following output from the NYU sequence snippet:
<img src="assets/demo.gif" width="260">
## 4. Examples
### Dynamic lighting
The left is ours and the right is the original optical flow algorithm.
<table><tr>
<td><img src=assets/3.png border=0 width="260"></td>
<td><img src=assets/4.png border=0 width="260"></td>
</tr></table>
### Underwater
The left is ours and the right is the original optical flow algorithm.
<table><tr>
<td><img src=assets/1.png border=0 width="260"></td>
<td><img src=assets/2.png border=0 width="260"></td>
</tr></table>
### Active light source
The left is ours and the right is the original optical flow algorithm.
<table><tr>
<td><img src=assets/7.png border=0 width="260"></td>
<td><img src=assets/8.png border=0 width="260"></td>
</tr></table>
## 5. Cite
```
@ARTICLE{let-net,
author={Lin, Yicheng and Wang, Shuo and Jiang, Yunlong and Han, Bin},
journal={IEEE Robotics and Automation Letters},
title={{Breaking of brightness consistency in optical flow with a lightweight CNN network}},
year={2024},
pages={1-8}
}
```
================================================
FILE: main.cpp
================================================
#include "net.h"
#include "mat.h"
#include "opencv2/opencv.hpp"
#include "chrono"
#include "tracking.h"
#define IMG_H 240
#define IMG_W 320
int main(int argc, char** argv) {
if (argc != 4 && argc != 5) {
std::cout<<" Usage: ./demo <model_param> <model_bin> <video_path> <video_path> or ./demo <model_param> <model_bin> <image_path_1> <image_path_2>"<<std::endl;
return -1;
}
cv::VideoCapture capture;
cv::VideoWriter writer("output.avi", cv::VideoWriter::fourcc('M', 'J', 'P', 'G'), 10, cv::Size(320, 240));
cv::Mat img1, img2;
bool is_video = false;
if (argc == 4) {
is_video = true;
std::string video_path = argv[3];
capture.open(video_path);
if (!capture.isOpened()) {
std::cout<<" Error opening video file !"<<std::endl;
return -1;
}
} else {
std::string img_path_1 = argv[3];
std::string img_path_2 = argv[4];
img1 = cv::imread(img_path_1);
img2 = cv::imread(img_path_2);
cv::resize(img1, img1, cv::Size(IMG_W, IMG_H));
cv::resize(img2, img2, cv::Size(IMG_W, IMG_H));
if (img1.empty() || img2.empty()) {
std::cout << " Error opening image file !" << std::endl;
return -1;
}
}
const float mean_vals[3] = {0, 0, 0};
const float norm_vals[3] = {1.0/255.0, 1.0/255.0, 1.0/255.0};
const float mean_vals_inv[3] = {0, 0, 0};
const float norm_vals_inv[3] = {255.f, 255.f, 255.f};
ncnn::Net net;
net.load_param(argv[1]);
net.load_model(argv[2]);
cv::Mat score(IMG_H, IMG_W, CV_8UC1);
cv::Mat desc(IMG_H, IMG_W, CV_8UC3);
cv::Mat frame;
ncnn::Mat in;
ncnn::Mat out1, out2;
corner_tracking tracker;
while (true) {
ncnn::Extractor ex = net.create_extractor();
ex.set_light_mode(true);
ex.set_num_threads(1);
if (is_video) {
capture >> frame;
} else {
static int i = 0;
if (i == 0)
frame = img1;
else if (i == 1)
frame = img2;
else
break;
i++;
}
if (frame.empty())
break;
cv::resize(frame, frame, cv::Size(IMG_W, IMG_H));
////////////////////////// opencv image to ncnn mat //////////////////////////
std::chrono::high_resolution_clock::time_point t1 = std::chrono::high_resolution_clock::now();
in = ncnn::Mat::from_pixels(frame.data, ncnn::Mat::PIXEL_BGR, frame.cols, frame.rows);
in.substract_mean_normalize(mean_vals, norm_vals);
////////////////////////// ncnn forward //////////////////////////
std::chrono::high_resolution_clock::time_point t2 = std::chrono::high_resolution_clock::now();
ex.input("input", in);
ex.extract("score", out1);
ex.extract("descriptor", out2);
////////////////////////// ncnn mat to opencv image //////////////////////////
std::chrono::high_resolution_clock::time_point t3 = std::chrono::high_resolution_clock::now();
out1.substract_mean_normalize(mean_vals_inv, norm_vals_inv);
out2.substract_mean_normalize(mean_vals_inv, norm_vals_inv);
// memcpy((uchar*)score.data, out1.data, sizeof(float) * out1.w * out1.h);
out1.to_pixels(score.data, ncnn::Mat::PIXEL_GRAY);
out2.to_pixels(desc.data, ncnn::Mat::PIXEL_BGR);
std::chrono::high_resolution_clock::time_point t4 = std::chrono::high_resolution_clock::now();
////////////////////////// show times //////////////////////////
std::chrono::duration<double> time_used_1 = std::chrono::duration_cast<std::chrono::duration<double>>(t2-t1);
std::chrono::duration<double> time_used_2 = std::chrono::duration_cast<std::chrono::duration<double>>(t3-t2);
std::chrono::duration<double> time_used_3 = std::chrono::duration_cast<std::chrono::duration<double>>(t4-t3);
std::cout<<"time_used 1 : "<<time_used_1.count()*1000<<"ms"<<std::endl;
std::cout<<"time_used 2 : "<<time_used_2.count()*1000<<"ms"<<std::endl;
std::cout<<"time_used 3 : "<<time_used_3.count()*1000<<"ms"<<std::endl;
////////////////////////// show result //////////////////////////
cv::Mat new_desc = desc.clone();
tracker.update(score, new_desc);
tracker.show(frame);
if (is_video) {
writer << frame;
}
cv::waitKey(500);
}
writer.release();
capture.release();
return 0;
}
================================================
FILE: model/letnet-gray.onnx
================================================
pytorch2.0.1:
input.1
onnx::Conv_35
onnx::Conv_36/block1/conv1/Conv_output_0/block1/conv1/Conv"Conv*
dilations@@*
group*
kernel_shape@@*
pads@@@@*
strides@@2/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/conv.py(459): _conv_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/conv.py(463): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/nets/alnet.py(49): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/nets/alnet.py(166): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(118): wrapper
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(127): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(1268): _get_trace_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(893): _trace_and_get_graph_from_model
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(989): _create_jit_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1113): _model_to_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1548): _export
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(506): export
/home/server/wangshuo/ALIKE_code/nets/alnet.py(318): <module>
/block1/conv1/Conv_output_0/block1/gate/Relu_output_0/block1/gate/Relu"Relu2/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/functional.py(1455): relu
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/activation.py(103): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/nets/alnet.py(49): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/nets/alnet.py(166): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(118): wrapper
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(127): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(1268): _get_trace_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(893): _trace_and_get_graph_from_model
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(989): _create_jit_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1113): _model_to_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1548): _export
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(506): export
/home/server/wangshuo/ALIKE_code/nets/alnet.py(318): <module>
/block1/gate/Relu_output_0
onnx::Conv_38
onnx::Conv_39/block1/conv2/Conv_output_0/block1/conv2/Conv"Conv*
dilations@@*
group*
kernel_shape@@*
pads@@@@*
strides@@2/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/conv.py(459): _conv_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/conv.py(463): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/nets/alnet.py(50): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/nets/alnet.py(166): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(118): wrapper
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(127): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(1268): _get_trace_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(893): _trace_and_get_graph_from_model
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(989): _create_jit_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1113): _model_to_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1548): _export
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(506): export
/home/server/wangshuo/ALIKE_code/nets/alnet.py(318): <module>
/block1/conv2/Conv_output_0/block1/gate_1/Relu_output_0/block1/gate_1/Relu"Relu2/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/functional.py(1455): relu
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/activation.py(103): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/nets/alnet.py(50): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/nets/alnet.py(166): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(118): wrapper
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(127): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(1268): _get_trace_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(893): _trace_and_get_graph_from_model
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(989): _create_jit_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1113): _model_to_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1548): _export
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(506): export
/home/server/wangshuo/ALIKE_code/nets/alnet.py(318): <module>
/block1/gate_1/Relu_output_0
conv1.weight/conv1/Conv_output_0/conv1/Conv"Conv*
dilations@@*
group*
kernel_shape@@*
pads@ @ @ @ *
strides@@2
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/conv.py(459): _conv_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/conv.py(463): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/nets/alnet.py(167): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(118): wrapper
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(127): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(1268): _get_trace_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(893): _trace_and_get_graph_from_model
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(989): _create_jit_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1113): _model_to_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1548): _export
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(506): export
/home/server/wangshuo/ALIKE_code/nets/alnet.py(318): <module>
/conv1/Conv_output_0/gate/Relu_output_0
/gate/Relu"Relu2
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/functional.py(1455): relu
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/activation.py(103): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/nets/alnet.py(167): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(118): wrapper
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(127): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(1268): _get_trace_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(893): _trace_and_get_graph_from_model
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(989): _create_jit_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1113): _model_to_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1548): _export
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(506): export
/home/server/wangshuo/ALIKE_code/nets/alnet.py(318): <module>
/gate/Relu_output_0
conv_head.weight/conv_head/Conv_output_0/conv_head/Conv"Conv*
dilations@@*
group*
kernel_shape@@*
pads@ @ @ @ *
strides@@2
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/conv.py(459): _conv_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/conv.py(463): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/nets/alnet.py(169): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(118): wrapper
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(127): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(1268): _get_trace_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(893): _trace_and_get_graph_from_model
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(989): _create_jit_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1113): _model_to_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1548): _export
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(506): export
/home/server/wangshuo/ALIKE_code/nets/alnet.py(318): <module>
E/Constant_output_0 /Constant"Constant*
value*J 2
/conv_head/Conv_output_0
/Constant_output_0/Gather_output_0/Gather"Gather*
axis2
/home/server/wangshuo/ALIKE_code/nets/alnet.py(170): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(118): wrapper
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(127): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(1268): _get_trace_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(893): _trace_and_get_graph_from_model
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(989): _create_jit_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1113): _model_to_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1548): _export
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(506): export
/home/server/wangshuo/ALIKE_code/nets/alnet.py(318): <module>
/Gather_output_0/Sigmoid_output_0/Sigmoid"Sigmoid2
/home/server/wangshuo/ALIKE_code/nets/alnet.py(170): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(118): wrapper
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(127): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(1268): _get_trace_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(893): _trace_and_get_graph_from_model
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(989): _create_jit_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1113): _model_to_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1548): _export
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(506): export
/home/server/wangshuo/ALIKE_code/nets/alnet.py(318): <module>
/Sigmoid_output_027
/Unsqueeze" Unsqueeze*
axes@2
/home/server/wangshuo/ALIKE_code/nets/alnet.py(170): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(118): wrapper
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(127): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(1268): _get_trace_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(893): _trace_and_get_graph_from_model
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(989): _create_jit_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1113): _model_to_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1548): _export
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(506): export
/home/server/wangshuo/ALIKE_code/nets/alnet.py(318): <module>
/Constant_1_output_0/Constant_1"Constant*
value*J 2
/home/server/wangshuo/ALIKE_code/nets/alnet.py(171): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(118): wrapper
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(127): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(1268): _get_trace_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(893): _trace_and_get_graph_from_model
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(989): _create_jit_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1113): _model_to_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1548): _export
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(506): export
/home/server/wangshuo/ALIKE_code/nets/alnet.py(318): <module>
/Constant_2_output_0/Constant_2"Constant*
value*J 2
/home/server/wangshuo/ALIKE_code/nets/alnet.py(171): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(118): wrapper
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(127): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(1268): _get_trace_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(893): _trace_and_get_graph_from_model
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(989): _create_jit_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1113): _model_to_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1548): _export
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(506): export
/home/server/wangshuo/ALIKE_code/nets/alnet.py(318): <module>
/Constant_3_output_0/Constant_3"Constant*
value*J2
/home/server/wangshuo/ALIKE_code/nets/alnet.py(171): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(118): wrapper
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(127): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(1268): _get_trace_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(893): _trace_and_get_graph_from_model
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(989): _create_jit_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1113): _model_to_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1548): _export
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(506): export
/home/server/wangshuo/ALIKE_code/nets/alnet.py(318): <module>
/Constant_4_output_0/Constant_4"Constant*
value*J 2
/home/server/wangshuo/ALIKE_code/nets/alnet.py(171): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(118): wrapper
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(127): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(1268): _get_trace_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(893): _trace_and_get_graph_from_model
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(989): _create_jit_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1113): _model_to_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1548): _export
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(506): export
/home/server/wangshuo/ALIKE_code/nets/alnet.py(318): <module>
/conv_head/Conv_output_0
/Constant_2_output_0
/Constant_3_output_0
/Constant_1_output_0
/Constant_4_output_0/Slice_output_0/Slice"Slice2
/home/server/wangshuo/ALIKE_code/nets/alnet.py(171): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(118): wrapper
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(127): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(1268): _get_trace_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(893): _trace_and_get_graph_from_model
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(989): _create_jit_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1113): _model_to_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1548): _export
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(506): export
/home/server/wangshuo/ALIKE_code/nets/alnet.py(318): <module>
/Slice_output_033
/Sigmoid_1"Sigmoid2
/home/server/wangshuo/ALIKE_code/nets/alnet.py(171): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1488): _slow_forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(118): wrapper
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(127): forward
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/nn/modules/module.py(1501): _call_impl
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/jit/_trace.py(1268): _get_trace_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(893): _trace_and_get_graph_from_model
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(989): _create_jit_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1113): _model_to_graph
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(1548): _export
/home/server/wangshuo/ALIKE_code/py38/lib/python3.8/site-packages/torch/onnx/utils.py(506): export
/home/server/wangshuo/ALIKE_code/nets/alnet.py(318): <module>
torch_jit*Bconv1.weightJ>ԩoǾ={D>/!>ԓ>>>=N$M'r >؝ƍ}>>%'
;)>˾̈C>*> <3F"?S.JO>*<L=(܇>>L=qy>/ >hY>)>q>}Mu< >CS=}>頾!v>;xfF.=|>@U=>h<;=|>"?ٿmeq>y>Is===2ϾK:2 _aj>G>x4f>>$Q>6@j=
/d<+]h>S=X'T>ysyV><_P?ڦ?=f=>ݱ !=>N=GU>>!Ľ'>k>h
==yn ս|/?Q.HQ=>>*Bconv_head.weightJVy+r9
?aFԽCVĽ=[$}ET>z4=4%Υ=Wξs|>%=!=`F0Ǫ>aWc9">$R;0<>>GW]^?6>#Ѿ.@K="'{L毽L">Gk<ʵ2s4=4<.'u%, ?tĿsz((T]?S@%b;'9gĤd?kH/*B
onnx::Conv_35Jm;b@BW@@:j@U0@ztՠo?FA?'`?@,?m?5=e?~@|Y@غ?@P EyC-vf!@z?p>|'?h(>]=?sf?l@8=>>?mZhc>%U-?>=YLw?
4 oz9C=)NZq?f>-4?ץZ i(@Φ@@*5B
onnx::Conv_36J 0 =8?CcĿN?+?+=*B
onnx::Conv_38Jg=0Խ
K[{=d=f-
===
I=i4;ˎ<iLc
SO>;(漪N<!>7=χ>]n=KU><E,G=)Zɼbیv9 <bC=7ѽd=I궽WG="GV=uO>6/\b=ş;}(C'>>,<=9F=}eX<}Ҫ=<ꋳ=)=bXt%}9bDA1ы==B8j==l;/3i=<<h>)>7 =3>!=8=_><-a<\!==7=h]`I"9ځ7ojX<84who<ʷ& f_=m_Y ="C=m8V,=Q]Ij<E>{=>Ϳ<~"<P7:\ ۥ۽'=n=q0A= >G{*F=8==w=k
=<P=R
H=彂'=e=q=`S<[<dq7һު>hIHl>~ھB=_<h>I8x辦6ѽ3dF쉽5^νk9=r"=7Խ Y=ݕ`V {F@h c;GX#={]=[=}=>ךs=S_D_=Ae=+<h<2>'Z=0奼=C<jc=H=b>O=K=K>2b3>V >w`><>Tv=t<;=`R<=gGm=麀Y3`P>R=j>߰=(A=Ԁѽ*wM<209=*=@;iR꽰?j%<_=k<&ь*>6=
/=*T> -==M^:XeB=;*>^k=yXz=LQm=9[<3>NX{Aց H0x|)3佣~E/:)E꾷
@UMsN50:!Fx!$>$#=V`=
w>}u?h=
;nEΉyл{ J4^=lv)K
== R33=B=; =F<.<ۊ=4=<~k=9=(?>9M=ޫԽ S=f;=tŽF{L=º2I>=y/,y=k<`
='&!6=b=ʼ/+;I<=ݫº(o>=
>J}=_6Rg7Yi>L=`;>rX">З12sV>г=S=->VD>pl=e 6>'>ؑ><
7>H?qC\3>-)>=$=>]7>~uK`lV<h;,>pN9=Jv>L
>gX<=ŗؾ hQͤ\N>+3>>=>c=-
>;<F=p:w5=<b<ȿ==:xr@û\K#Ҵ>Dd>,P.8=V=']>qžo|h=I#<+;Z}+>E>I_}$>q>fh>ЌgY0<=\=m;>V>lN~>z:8P(><e=xa6>ʾ.A="s>q/,{8k>>4>}>[3?q߾i>ܗ>