Full Code of linyicheng1/LET-NET for AI

main 64dfae986d45 cached
10 files
73.2 KB
27.4k tokens
2 symbols
1 requests
Download .txt
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*J2

/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*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_2_output_0/Constant_2"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_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*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>


/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*Bconv1.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?ץZi(@Φ@@*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@hc;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>ܗ>Zǽ=!h=>=qJ=P;dP(;w<A;	½oB==M=%=A:
==!-=:ӽt5=ɾ<shk7H=%6=zfex=v=';Ue;D"R*^½Ў:I#=;PLnȼVeu=,#X=W>0=>>>=)Г=}o>L<==>%>=ρ>>%1M
<goF>30=:2q9=jD,=6E(3f<*5B
onnx::Conv_39J x?]?fR???
2H>a>Z#
input.1




b
27




b
33




B

================================================
FILE: model/letnet.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*J2

/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*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_2_output_0/Constant_2"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_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*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>


/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*Bconv1.weightJG->N3'=ܬ=orT7>`>z̾q;?F3>n>HX|0-WGq>F'¾9>=wma>F=)>	
X=>A;+>az$=BѽeM뼡P
M&u>*?̀<
=>~<='>
""wf10p8">P=|	4h>10>_Վ!ܛ>d}I?F_C4>>yl>
=h=4p7=V
܃#>c>G =熾>u>w=<ͽ8Fm*)=>Ou_|ě"=>f>Pe2ehp>~%==/>ce=>0>>)$>9\X=T"n< <+>	>pw>|>I	d>$>tZ*Bconv_head.weightJqӾ__w>e=}>D={js;<"=2鼓<>U?ϲ̾kS#D=XRp'$wryоK>iɽy'6=x}>.3=&">>Ovy+=H潕=<
u^9.>z>h=@PlwZ>-^'۟?li<~￘6>zWֿӬc\x	^5@wi*B
onnx::Conv_35JZ"4C>aϏ? ?[?ۍ@;?yS!q>>!?+M>P؎??pQaYG>?E	??U@O?
?`P?_Wd=?
=>
>O)=??fq>?6Szt?|z^a@a?)?5#j??V>$i௘#UǾ,&5?.?h@E?EuZtſҍ?'?
+gT7?{w@Y??W{g1=E@:ž/@?e6Q:e9^@Yb~?ŭ?@[	Ae
??ۿ_AA*]?ɍS@z@e-@5A?mƻe?AYV;mƾ><s/8W8x>j=8„>+=@b
J=;h` &>NK%>)_=l#ս>>2=5>)?j>?p>d
?Ay>??>\9?LP\ȃFkV>m>X=o߿E{>QC?l>	]I-W=ᙾ?*=&V?πJ>WH?g
⥋??>*?|?F???[G_?o{пqIL@m־\*>ojR??cCc?
;qA?;Q??V?~*???ݸ?vI>+>n77@>)ab?CMƾ/ @a?yIDjT>O>j:>@*5B
onnx::Conv_36J I7?X-?2=W?*?5?*B
onnx::Conv_38JX<%Ӽ()=n8EQ<!m=Uȼ&>=Q=q<\n='=b;I=S>ټY
^KнH*oNXV
V"=P<׎By+;͵޳2=u=,o<Ef8=^q>G<P;Z罣?=F+Lc==h
M<ͺ/>P=_
>eC9=Vw>5<=+d=	QY=d<6=́X=>S=i#>L H=G$>a>=NCC똽hPMOņMp0=!ER|5QK<\J <2<Žݽݼ"!}q˼r<d_<j*<F%xf2ٽ ^YaƢ<6====>0=D+	>T=7Է셽s.ba)W<r)>|}
T=ׂ!1mo^;Ѽּnwx׽G>7;Š+=uMBl+
&>Ex*ݽD9	>#>t=U=Yĭ弡=)@>g>2>'ü>=ʲ~˻%GqXK<T6=_=B;ƮEh=;<=4ĻT齲
>52=t+=g<z<2+$-<4>j\>7>:ľ購|h=>0v=?Q>^`7<B/z/Q9>7=0>Զ=綼<D{2=nO<n>Oe=~
6=<c<8]Ჽ%:6wNq<pM#F*q=SpV<hS=MSWg|x <j\xAX;ÕǓ;莘<'=H;u=1kz=3]ETn[j缎ށ==}d;6I@<9(;<s2V|#E8N!;Ie<9)=<'=ʢ=`=Ws=2=7W=l==A!=$8=T?=T?++f>{38*<=z=}L=<.=t={D<b\>n<nX>=H(
q=7<W_=i*
=k	;gœ<;JV@#s=Ԛ=y&
=+=]W>ۿb`#q=s>BF=!>=e|6&<ƫ*b=
I˾v3'=bAI&=Q2>LǪ<[885G5GGcpcOmɟ=˒W=k)=(fEC<l=iM<<6j=lEiX'ZԼ4kNb;f <~B;JT%<D3;_c;m9(ښ=i;-*<[s2
;"=(#_A]ü4f<ĴM<WBE6G:}>oe[OozVb<8=<r
z!cҌ<=6#<۞=3gN:O8~=*:;>bv=F+>mv=A
8<]=w=D"=6>A=)=>d==">Ѽ+m=Ib=T=!==W=uD9=g=&E=]===mP=+Y;N/:_>N5=8I
#ýmK<ĝɅtн$;b<xf<;}\+f~ƶfpȽk;U;>s/KA==4IqUW<qQI<<?;;
b}<W`j=NY<\==<L
z꨸O=/hs%vc=7mO=DLd=K<پ=?D=6<='
X=<?=/Z==<G[=廴uPh<+=kW=	}*4d
	0TWS)';(9;~>nJ>wD|>b>g>k>d;>Ŷ>p><漽&Mwcta?<Yk<5<K6z=?<H:f1:2<2ἴ쑽*5B
onnx::Conv_39J >^?N>s?d~?6q@y>(()?Z#
input.1




b
27




b
33




B

================================================
FILE: model/model.param
================================================
7767517
14 15
Input            input                    0 1 input
Convolution      Conv_0                   1 1 input input.4 0=8 1=3 11=3 2=1 12=1 3=1 13=1 4=1 14=1 15=1 16=1 5=1 6=216
ReLU             Relu_1                   1 1 input.4 onnx::Conv_17
Convolution      Conv_2                   1 1 onnx::Conv_17 input.12 0=8 1=3 11=3 2=1 12=1 3=1 13=1 4=1 14=1 15=1 16=1 5=1 6=576
ReLU             Relu_3                   1 1 input.12 onnx::Conv_20
Convolution      Conv_4                   1 1 onnx::Conv_20 input.16 0=16 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=0 6=128
ReLU             Relu_5                   1 1 input.16 onnx::Conv_22
Convolution      Conv_6                   1 1 onnx::Conv_22 onnx::Gather_23 0=4 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=0 6=64
Split            splitncnn_0              1 2 onnx::Gather_23 onnx::Gather_23_splitncnn_0 onnx::Gather_23_splitncnn_1
Crop             Gather_8                 1 1 onnx::Gather_23_splitncnn_1 onnx::Sigmoid_25 -23309=1,3 -23310=1,4 -23311=1,0
Sigmoid          Sigmoid_9                1 1 onnx::Sigmoid_25 onnx::Unsqueeze_26
ExpandDims       Unsqueeze_10             1 1 onnx::Unsqueeze_26 score -23303=1,0
Crop             Slice_15                 1 1 onnx::Gather_23_splitncnn_0 onnx::Sigmoid_32 -23309=1,0 -23310=1,-1 -23311=1,0
Sigmoid          Sigmoid_16               1 1 onnx::Sigmoid_32 descriptor


================================================
FILE: tracking.cpp
================================================
#include "tracking.h"

void corner_tracking::update(const cv::Mat& score, const cv::Mat& desc) {

    if (trackedPoints.empty()) {// first frame
        trackedPoints = extractFeature(score);
        trackedPointsHistory.resize(trackedPoints.size());
        for (size_t i = 0; i < trackedPoints.size(); i++) {
            trackedPointsHistory[i].push_back(trackedPoints[i]);
        }
    } else {
        std::vector<cv::Point2f> trackedPointsNew;
        std::vector<uchar> status;
        std::vector<float> err;

        cv::calcOpticalFlowPyrLK(
                prevDesc,
                desc,
                trackedPoints,
                trackedPointsNew,
                status,
                err);

        std::vector<cv::Point2f> tracked = {};
        std::vector<std::vector<cv::Point2f>> trackedHistory = {};
        for (size_t i = 0; i < status.size(); i++) {
            if (status[i]) {
                tracked.push_back(trackedPointsNew[i]);
                trackedPointsHistory[i].push_back(trackedPointsNew[i]);
                if (trackedPointsHistory[i].size() > 5) {
                    trackedPointsHistory[i].erase(trackedPointsHistory[i].begin());
                }
                trackedHistory.push_back(trackedPointsHistory[i]);
            }
        }
        std::vector<cv::Point2f> add = extractFeature(score, 20, tracked);
        std::vector<std::vector<cv::Point2f>> add_history(add.size());
        for (size_t i = 0; i < add.size(); i++) {
            add_history[i].push_back(add[i]);
        }

        trackedPoints.clear();
        trackedPointsHistory.clear();

        trackedPoints.insert(trackedPoints.end(), tracked.begin(), tracked.end());
        trackedPoints.insert(trackedPoints.end(), add.begin(), add.end());
        trackedPointsHistory.insert(trackedPointsHistory.end(), trackedHistory.begin(), trackedHistory.end());
        trackedPointsHistory.insert(trackedPointsHistory.end(), add_history.begin(), add_history.end());
    }
    prevDesc = desc;
}

void corner_tracking::show(cv::Mat &img) {
    for (auto& p : trackedPoints) {
        cv::circle(img, p, 2, cv::Scalar(0, 255, 0), -1);
    }
    for (auto& history : trackedPointsHistory) {
        for (size_t i = 1; i < history.size(); i++) {
            cv::line(img, history[i - 1], history[i], cv::Scalar(0, 0, 255), 1);
        }
    }
    cv::imshow("tracking", img);
}

std::vector<cv::Point2f> corner_tracking::extractFeature(
        const cv::Mat& score,
        int ncellsize,
        const std::vector<cv::Point2f>& vcurkps)
{
    if (score.empty()) {
        return std::vector<cv::Point2f>();
    }

    size_t ncols = score.cols;
    size_t nrows = score.rows;

    size_t nhalfcell = ncellsize / 4;

    size_t nhcells = nrows / ncellsize;
    size_t nwcells = ncols / ncellsize;
    size_t nbcells = nhcells * nwcells;

    std::vector<cv::Point2f> vdetectedpx;
    vdetectedpx.reserve(nbcells);

    std::vector<std::vector<bool>> voccupcells(
            nhcells + 1,
            std::vector<bool>(nwcells + 1, false)
    );

    cv::Mat mask = cv::Mat::ones(score.rows, score.cols, CV_8UC1);

    for (const auto& px : vcurkps) {
        voccupcells[px.y / ncellsize][px.x / ncellsize] = true;
        cv::circle(mask, px, nhalfcell, cv::Scalar(0.), -1);
    }

    size_t nboccup = 0;

    std::vector<std::vector<cv::Point2f>> vvdetectedpx(nbcells);
    std::vector<std::vector<cv::Point2f>> vvsecdetectionspx(nbcells);

    auto cvrange = cv::Range(0, nbcells);

    parallel_for_(cvrange, [&](const cv::Range& range)
    {
        for (int i = range.start; i < range.end; i ++) {

            size_t r = floor(i / nwcells);
            size_t c = i % nwcells;

            if( voccupcells[r][c] ) {
                nboccup++;
                continue;
            }

            size_t x = c*ncellsize;
            size_t y = r*ncellsize;

            cv::Rect hroi(x,y,ncellsize,ncellsize);

            if( x+ncellsize < ncols-1 && y+ncellsize < nrows-1 ) {

                double dminval, dmaxval;
                cv::Point minpx, maxpx;

                cv::minMaxLoc(score(hroi).mul(mask(hroi)), &dminval, &dmaxval, &minpx, &maxpx);
                maxpx.x += x;
                maxpx.y += y;

                if( dmaxval >= 0.2) {
                    vvdetectedpx.at(i).push_back(maxpx);
                    cv::circle(mask, maxpx, nhalfcell, cv::Scalar(0.), -1);
                }

                cv::minMaxLoc(score(hroi).mul(mask(hroi)), &dminval, &dmaxval, &minpx, &maxpx);
                maxpx.x += x;
                maxpx.y += y;

                if( dmaxval >= 0.2)
                {
                    vvsecdetectionspx.at(i).push_back(maxpx);
                    cv::circle(mask, maxpx, nhalfcell, cv::Scalar(0.), -1);
                }
            }
        }
    });

    for (const auto& vpx:vvdetectedpx) {
        if (!vpx.empty()) {
            vdetectedpx.insert(vdetectedpx.end(), vpx.begin(), vpx.end());
        }
    }

    size_t nbkps = vdetectedpx.size();

    if (nbkps + nboccup < nbcells) {
        size_t nbsec = nbcells - nbkps - nboccup;
        size_t k = 0;
        for (const auto &vseckp : vvsecdetectionspx) {
            if (!vseckp.empty()) {
                vdetectedpx.push_back(vseckp.back());
                k ++;
                if (k == nbsec) {
                    break;
                }
            }
        }
    }

    return vdetectedpx;
}





================================================
FILE: tracking.h
================================================
#ifndef __TRACKING_H_
#define __TRACKING_H_
#include <vector>
#include "opencv2/opencv.hpp"


class corner_tracking
{
public:
    corner_tracking() = default;
    ~corner_tracking() = default;
    void update(const cv::Mat& score, const cv::Mat& desc);
    void show(cv::Mat& img);
private:
    std::vector<cv::Point2f> extractFeature(
            const cv::Mat& score,
            int ncellsize = 20,
            const std::vector<cv::Point2f>& points = std::vector<cv::Point2f>());

    std::vector<cv::Point2f> trackedPoints;
    std::vector<cv::Point2f> prevTrackedPoints;
    cv::Mat prevScore;
    cv::Mat prevDesc;
    std::vector<std::vector<cv::Point2f>> trackedPointsHistory;
};

#endif //__TRACKING_H_
Download .txt
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
Download .txt
SYMBOL INDEX (2 symbols across 2 files)

FILE: main.cpp
  function main (line 10) | int main(int argc, char** argv) {

FILE: tracking.h
  function class (line 7) | class corner_tracking
Condensed preview — 10 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (84K chars).
[
  {
    "path": "CMakeLists.txt",
    "chars": 505,
    "preview": "cmake_minimum_required(VERSION 3.10)\nproject(demo)\n\nset(CMAKE_CXX_STANDARD 14)\nSET(CMAKE_BUILD_TYPE Release)\nset(CMAKE_C"
  },
  {
    "path": "README.md",
    "chars": 3801,
    "preview": "# LET-NET: A lightweight CNN network for sparse corners extraction and tracking\n\nLET-NET implements an extremely lightwe"
  },
  {
    "path": "main.cpp",
    "chars": 4569,
    "preview": "#include \"net.h\"\n#include \"mat.h\"\n#include \"opencv2/opencv.hpp\"\n#include \"chrono\"\n#include \"tracking.h\"\n\n#define IMG_H 2"
  },
  {
    "path": "model/letnet-gray.onnx",
    "chars": 29086,
    "preview": "\b\u0006\u0012\u0007pytorch\u001a\u00052.0.1:\u0001\n\u0011\n\u0007input.1\n\ronnx::Conv_35\n\ronnx::Conv_36\u0012\u001b/block1/conv1/Conv_output_0\u001a\u0012/block1/conv1/Conv\"\u0004Conv*\u0012\n\t"
  },
  {
    "path": "model/letnet.onnx",
    "chars": 29443,
    "preview": "\b\u0006\u0012\u0007pytorch\u001a\u00052.0.1:\u0001\n\u0011\n\u0007input.1\n\ronnx::Conv_35\n\ronnx::Conv_36\u0012\u001b/block1/conv1/Conv_output_0\u001a\u0012/block1/conv1/Conv\"\u0004Conv*\u0012\n\t"
  },
  {
    "path": "model/model.param",
    "chars": 1391,
    "preview": "7767517\n14 15\nInput            input                    0 1 input\nConvolution      Conv_0                   1 1 input in"
  },
  {
    "path": "tracking.cpp",
    "chars": 5445,
    "preview": "#include \"tracking.h\"\n\nvoid corner_tracking::update(const cv::Mat& score, const cv::Mat& desc) {\n\n    if (trackedPoints."
  },
  {
    "path": "tracking.h",
    "chars": 713,
    "preview": "#ifndef __TRACKING_H_\n#define __TRACKING_H_\n#include <vector>\n#include \"opencv2/opencv.hpp\"\n\n\nclass corner_tracking\n{\npu"
  }
]

// ... and 2 more files (download for full content)

About this extraction

This page contains the full source code of the linyicheng1/LET-NET GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 10 files (73.2 KB), approximately 27.4k tokens, and a symbol index with 2 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!