tracel-ai / models

Models and examples built with Burn
Apache License 2.0
169 stars 23 forks source link

Stack overflow when running flamingo example #3

Closed VirtualNonsense closed 4 months ago

VirtualNonsense commented 1 year ago

Hey, this project is quite interesting! However i've noticed that there might be an issue when trying to run the example. I've tried it with Rust 1.72.0 on a Win11 machine. Let me know if i can help to track this down.

 cargo r --release --example classify samples/flamingo.jpg
   Compiling num-integer v0.1.45
   Compiling syn v2.0.29
   Compiling crc32fast v1.3.2
   Compiling serde_json v1.0.105
   Compiling vcpkg v0.2.15
   Compiling pkg-config v0.3.27
   Compiling time-core v0.1.1
   Compiling cc v1.0.83
   Compiling time-macros v0.2.13
   Compiling crunchy v0.2.2                                                                                                                                                                                                            
   Compiling memchr v2.5.0
   Compiling futures-core v0.3.28
   Compiling windows-sys v0.48.0
   Compiling tiny-keccak v2.0.2                                                                                                                                                                                                        
   Compiling libsqlite3-sys v0.26.0                                                                                                                                                                                                    
   Compiling proc-macro-hack v0.5.20+deprecated                                                                                                                                                                                        
   Compiling indexmap v1.9.3                                                                                                                                                                                                           
   Compiling either v1.9.0                                                                                                                                                                                                             
   Compiling windows_x86_64_msvc v0.42.2                                                                                                                                                                                               
   Compiling smallvec v1.11.0                                                                                                                                                                                                          
   Compiling crossbeam-channel v0.5.8                                                                                                                                                                                                  
   Compiling rand_core v0.6.4                                                                                                                                                                                                          
   Compiling ppv-lite86 v0.2.17
   Compiling num-rational v0.4.1
   Compiling const-random-macro v0.1.15
   Compiling num_cpus v1.16.0
   Compiling anyhow v1.0.75
   Compiling signal-hook v0.3.17
   Compiling serde_derive v1.0.186
   Compiling thiserror-impl v1.0.47
   Compiling pin-project-internal v1.1.3
   Compiling derive-new v0.5.9
   Compiling rand_chacha v0.3.1
   Compiling fnv v1.0.7
   Compiling paste v1.0.14
   Compiling allocator-api2 v0.2.16
   Compiling crossbeam-deque v0.8.3
   Compiling rand v0.8.5
   Compiling burn-tensor-testgen v0.9.0 (https://github.com/burn-rs/burn#88cb6b07)
   Compiling proc-macro-error-attr v1.0.4
   Compiling itoa v1.0.9
   Compiling lazy_static v1.4.0
   Compiling simd-adler32 v0.3.7
   Compiling proc-macro-error v1.0.4
   Compiling tinyvec_macros v0.1.1
   Compiling ryu v1.0.15
   Compiling rustversion v1.0.14
   Compiling tinyvec v1.6.0
   Compiling rayon v1.7.0
   Compiling hashbrown v0.14.0                                                                                                                                                                                                         
   Compiling log v0.4.20                                                                                                                                                                                                               
   Compiling uuid v1.4.1
   Compiling aho-corasick v1.0.4                                                                                                                                                                                                       
   Compiling spin v0.9.8                                                                                                                                                                                                               
   Compiling bitflags v1.3.2                                                                                                                                                                                                           
   Compiling regex-syntax v0.7.4                                                                                                                                                                                                       
   Compiling ntapi v0.4.1                                                                                                                                                                                                              
   Compiling unicode-segmentation v1.10.1
   Compiling strsim v0.9.3                                                                                                                                                                                                             
   Compiling adler v1.0.2                                                                                                                                                                                                              
   Compiling fastrand v2.0.0
   Compiling ident_case v1.0.1                                                                                                                                                                                                         
   Compiling portable-atomic v1.4.2
   Compiling darling_core v0.10.2
   Compiling heck v0.3.3
   Compiling miniz_oxide v0.7.1
   Compiling tempfile v3.8.0
   Compiling unicode-normalization v0.1.22
   Compiling regex-automata v0.3.6
   Compiling half v2.3.1
   Compiling parking_lot v0.12.1
   Compiling time v0.1.45                                                                                                                                                                                                              
   Compiling unicode-bidi v0.3.13                                                                                                                                                                                                      
   Compiling heck v0.4.1
   Compiling deranged v0.3.8
   Compiling percent-encoding v2.3.0
   Compiling hashbrown v0.12.3
   Compiling chrono v0.4.26
   Compiling idna v0.4.0                                                                                                                                                                                                               
   Compiling form_urlencoded v1.2.0
   Compiling strum_macros v0.24.3
   Compiling structopt-derive v0.4.18                                                                                                                                                                                                  
   Compiling faster-hex v0.8.0
   Compiling time v0.3.27
   Compiling darling_macro v0.10.2                                                                                                                                                                                                     
   Compiling regex v1.9.3                                                                                                                                                                                                              
   Compiling csv-core v0.1.10
   Compiling matrixmultiply v0.3.7                                                                                                                                                                                                     
   Compiling bytemuck v1.13.1                                                                                                                                                                                                          
   Compiling unicode-width v0.1.10
   Compiling csv v1.2.2                                                                                                                                                                                                                
   Compiling darling v0.10.2
   Compiling gix-hash v0.12.0                                                                                                                                                                                                          
   Compiling flate2 v1.0.27                                                                                                                                                                                                            
   Compiling url v2.4.0
   Compiling hashlink v0.8.3                                                                                                                                                                                                           
   Compiling pin-project v1.1.3
   Compiling nanorand v0.7.0
   Compiling bitflags v2.4.0
   Compiling byteorder v1.4.3
   Compiling futures-sink v0.3.28                                                                                                                                                                                                      
   Compiling gix-trace v0.1.3                                                                                                                                                                                                          
   Compiling fallible-iterator v0.2.0
   Compiling fallible-streaming-iterator v0.1.9
   Compiling weezl v0.1.7
   Compiling gix-features v0.33.0
   Compiling flume v0.10.14
   Compiling rusqlite v0.29.0
   Compiling wrapcenum-derive v0.4.0
   Compiling scheduled-thread-pool v0.2.7
   Compiling jpeg-decoder v0.3.0
   Compiling fdeflate v0.3.0
   Compiling zune-inflate v0.2.54                                                                                                                                                                                                      
   Compiling rand_distr v0.4.3
   Compiling derivative v2.2.0
   Compiling burn-derive v0.9.0 (https://github.com/burn-rs/burn#88cb6b07)                                                                                                                                                             
   Compiling const-random v0.1.15                                                                                                                                                                                                      
   Compiling signal-hook-registry v1.4.1                                                                                                                                                                                               
   Compiling lebe v0.5.2
   Compiling protobuf v3.2.0                                                                                                                                                                                                           
   Compiling color_quant v1.1.0
   Compiling option-ext v0.2.0
   Compiling bit_field v0.10.2
   Compiling dirs-sys v0.4.1
   Compiling gif v0.12.0
   Compiling exr v1.6.4
   Compiling burn-tensor v0.9.0 (https://github.com/burn-rs/burn#88cb6b07)                                                                                                                                                             
   Compiling burn-common v0.9.0 (https://github.com/burn-rs/burn#88cb6b07)
   Compiling png v0.17.10
   Compiling tiff v0.9.0
   Compiling r2d2 v0.8.10
   Compiling windows-targets v0.42.2                                                                                                                                                                                                   
   Compiling gix-fs v0.5.0
   Compiling rmp v0.8.12
   Compiling qoi v0.4.1
   Compiling textwrap v0.11.0
   Compiling dashmap v5.5.1                                                                                                                                                                                                            
   Compiling protobuf-support v3.2.0                                                                                                                                                                                                   
   Compiling is-terminal v0.4.9
   Compiling atty v0.2.14
   Compiling bytes v1.4.0                                                                                                                                                                                                              
   Compiling linked-hash-map v0.5.6                                                                                                                                                                                                    
   Compiling strsim v0.8.0
   Compiling destructure_traitobject v0.2.0
   Compiling vec_map v0.8.2                                                                                                                                                                                                            
   Compiling yaml-rust v0.4.5
   Compiling unsafe-any-ors v1.0.0
   Compiling clap v2.34.0                                                                                                                                                                                                              
   Compiling image v0.24.7
   Compiling gix-tempfile v8.0.0
   Compiling colored v2.0.4
   Compiling rmp-serde v1.1.2
   Compiling windows-sys v0.45.0
   Compiling burn-autodiff v0.9.0 (https://github.com/burn-rs/burn#88cb6b07)
   Compiling r2d2_sqlite v0.22.0
   Compiling dirs v5.0.1
   Compiling serde_rusqlite v0.33.1
   Compiling sanitize-filename v0.5.0
   Compiling which v4.4.0                                                                                                                                                                                                              
   Compiling libloading v0.7.4
   Compiling ordered-float v2.10.0                                                                                                                                                                                                     
   Compiling nom v1.2.4                                                                                                                                                                                                                
   Compiling encode_unicode v0.3.6
   Compiling strum v0.24.1                                                                                                                                                                                                             
   Compiling burn-ndarray v0.9.0 (https://github.com/burn-rs/burn#88cb6b07)                                                                                                                                                            
   Compiling burn-dataset v0.9.0 (https://github.com/burn-rs/burn#88cb6b07)
   Compiling console v0.15.7                                                                                                                                                                                                           
   Compiling meval v0.2.0
   Compiling serde-value v0.7.0                                                                                                                                                                                                        
   Compiling nvml-wrapper-sys v0.7.0
   Compiling protobuf-parse v3.2.0
   Compiling structopt v0.3.26                                                                                                                                                                                                         
   Compiling drawille v0.3.0                                                                                                                                                                                                           
   Compiling serde_yaml v0.8.26
   Compiling typemap-ors v1.0.0
   Compiling rgb v0.8.36                                                                                                                                                                                                               
   Compiling bincode v2.0.0-rc.3                                                                                                                                                                                                       
   Compiling thread-tree v0.3.3                                                                                                                                                                                                        
   Compiling thread-id v4.2.0
   Compiling number_prefix v0.4.0                                                                                                                                                                                                      
   Compiling arc-swap v1.6.0
   Compiling log-mdc v0.1.0                                                                                                                                                                                                            
   Compiling rawpointer v0.2.1                                                                                                                                                                                                         
   Compiling humantime v2.1.0
   Compiling static_assertions v1.1.0
   Compiling bytesize v1.3.0                                                                                                                                                                                                           
   Compiling log4rs v1.2.0                                                                                                                                                                                                             
   Compiling systemstat v0.2.3
   Compiling nvml-wrapper v0.9.0                                                                                                                                                                                                       
   Compiling indicatif v0.17.6
   Compiling burn-core v0.9.0 (https://github.com/burn-rs/burn#88cb6b07)                                                                                                                                                               
   Compiling textplots v0.8.0                                                                                                                                                                                                          
   Compiling sysinfo v0.29.8                                                                                                                                                                                                           
   Compiling protobuf-codegen v3.2.0                                                                                                                                                                                                   
   Compiling terminal_size v0.2.6                                                                                                                                                                                                      
   Compiling num-complex v0.4.4                                                                                                                                                                                                        
   Compiling burn-train v0.9.0 (https://github.com/burn-rs/burn#88cb6b07)                                                                                                                                                              
   Compiling ndarray v0.15.6
   Compiling burn-import v0.9.0 (https://github.com/burn-rs/burn#88cb6b07)                                                                                                                                                             
   Compiling burn v0.9.0 (https://github.com/burn-rs/burn#88cb6b07)                                                                                                                                                                    
   Compiling rust-format v0.3.4                                                                                                                                                                                                        
   Compiling squeezenet-burn v0.1.0 (C:\Users\anachtmann\Repositories\intern\rust\TinyML\burn-models\squeezenet-burn)                                                                                                                  
    Finished release [optimized] target(s) in 3m 23s                                                                                                                                                                                   
warning: the following packages contain code that will be rejected by a future version of Rust: nom v1.2.4
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
     Running `target\release\examples\classify.exe samples/flamingo.jpg`

thread 'main' has overflowed its stack
error: process didn't exit successfully: `target\release\examples\classify.exe samples/flamingo.jpg` (exit code: 0xc00000fd, STATUS_STACK_OVERFLOW)
antimora commented 1 year ago

I am not sure why there is an overflow problem but can you try the following, just eliminate potential issues?

 cargo r --release --example classify samples\flamingo.jpg

I replaced / with \, since it's a windows machine.

Sorry I just saw your issue. I forgot to subscribe to messages from this repo.

VirtualNonsense commented 1 year ago

Hey antimora, Thank you for your answer! Unfortunately the issue persists.

For me it looks like there is some sort of memory leak since the process exits due to a stack overflow exception or maybe this is rust's way of telling me, I have me I have insufficient memory to run this model. However I am not an expert in rust so those theories are most likely wrong.

If I can provide any assistance to get to the bottom of this I'm happy to Help!

antimora commented 10 months ago

@VirtualNonsense can you please try again and see if the problem persist? I made a bunch of updates to the model. This model is used in this example project: https://github.com/Tracel-AI/burn/tree/main/examples/image-classification-web

VirtualNonsense commented 8 months ago

Hey @antimora!

Unfortunately the issue seems to persist.

here is some additional information about my toolchain

installed toolchains
--------------------
stable-x86_64-pc-windows-msvc (default)
nightly-x86_64-pc-windows-msvc

installed targets for active toolchain
--------------------------------------

thumbv7m-none-eabi
wasm32-unknown-unknown
x86_64-pc-windows-msvc

active toolchain
----------------

stable-x86_64-pc-windows-msvc (default)
rustc 1.75.0 (82e1608df 2023-12-21)
git pull
remote: Enumerating objects: 110, done.
remote: Counting objects: 100% (110/110), done.
remote: Compressing objects: 100% (53/53), done.
Receiving objects: 100% (103/103), 108.98 KiB | 4.74 MiB/s, done.
Resolving deltas:  56% (25/44)
Resolving deltas: 100% (44/44), completed with 4 local objects.
From https://github.com/burn-rs/models
   532f51a..19b08b9  main       -> origin/main
 * [new branch]      resnet     -> origin/resnet
Updating 532f51a..19b08b9
Fast-forward
 .github/workflows/rust.yml              | 47 +++++++++++++++++++++++++
 README.md                               |  1 +
 squeezenet-burn/Cargo.toml              | 27 +++++++++-----
 squeezenet-burn/README.md               | 33 ++++++++++++++++--
 squeezenet-burn/build.rs                | 62 +++++++++++++++++++++++++++++++--
 squeezenet-burn/examples/classify.rs    | 20 +++++++++--
 squeezenet-burn/src/lib.rs              |  1 +
 squeezenet-burn/src/model/normalizer.rs |  4 +--
 8 files changed, 177 insertions(+), 18 deletions(-)
 create mode 100644 .github/workflows/rust.yml
 git status
On branch main
Your branch is up to date with 'origin/main'.
cargo r --release --example classify samples/flamingo.jpg 
   Compiling unicode-ident v1.0.12
   Compiling serde v1.0.195
   Compiling crossbeam-utils v0.8.19
   Compiling windows_x86_64_msvc v0.52.0
   Compiling lock_api v0.4.11
   Compiling once_cell v1.19.0
   Compiling thiserror v1.0.56
   Compiling num-traits v0.2.17
   Compiling getrandom v0.2.12
   Compiling memchr v2.7.1
   Compiling proc-macro2 v1.0.78                                                                                                                                                                                                                                                                                   
   Compiling rand_core v0.6.4                                                                                                                                                                                                                                                                                      
   Compiling serde_json v1.0.111                                                                                                                                                                                                                                                                                   
   Compiling regex-syntax v0.8.2                                                                                                                                                                                                                                                                                   
   Compiling rand_chacha v0.3.1                                                                                                                                                                                                                                                                                    
   Compiling fastrand v2.0.1                                                                                                                                                                                                                                                                                       
   Compiling quote v1.0.35                                                                                                                                                                                                                                                                                         
   Compiling windows-targets v0.52.0                                                                                                                                                                                                                                                                               
   Compiling aho-corasick v1.1.2                                                                                                                                                                                                                                                                                   
   Compiling syn v2.0.48                                                                                                                                                                                                                                                                                           
   Compiling syn v1.0.109                                                                                                                                                                                                                                                                                          
   Compiling windows-sys v0.52.0                                                                                                                                                                                                                                                                                   
   Compiling rand v0.8.5
   Compiling rustix v0.38.30                                                                                                                                                                                                                                                                                       
   Compiling ahash v0.8.7
   Compiling spin v0.9.8                                                                                                                                                                                                                                                                                           
   Compiling anyhow v1.0.79                                                                                                                                                                                                                                                                                        
   Compiling uuid v1.7.0                                                                                                                                                                                                                                                                                           
   Compiling bitflags v2.4.2
   Compiling regex-automata v0.4.5                                                                                                                                                                                                                                                                                 
   Compiling rand_distr v0.4.3                                                                                                                                                                                                                                                                                     
   Compiling windows-sys v0.48.0                                                                                                                                                                                                                                                                                   
   Compiling crossbeam-epoch v0.9.18
   Compiling bytes v1.5.0                                                                                                                                                                                                                                                                                          
   Compiling byteorder v1.5.0                                                                                                                                                                                                                                                                                      
   Compiling ryu v1.0.16                                                                                                                                                                                                                                                                                           
   Compiling itoa v1.0.10                                                                                                                                                                                                                                                                                          
   Compiling rmp v0.8.12
   Compiling crossbeam-deque v0.8.5                                                                                                                                                                                                                                                                                
   Compiling crossbeam-channel v0.5.11                                                                                                                                                                                                                                                                             
   Compiling csv-core v0.1.11                                                                                                                                                                                                                                                                                      
   Compiling tempfile v3.9.0                                                                                                                                                                                                                                                                                       
   Compiling errno v0.3.8                                                                                                                                                                                                                                                                                          
   Compiling home v0.5.9
   Compiling rayon-core v1.12.1                                                                                                                                                                                                                                                                                    
   Compiling which v4.4.2                                                                                                                                                                                                                                                                                          
   Compiling thread-tree v0.3.3
   Compiling derive-new v0.5.9                                                                                                                                                                                                                                                                                     
   Compiling regex v1.10.3                                                                                                                                                                                                                                                                                         
   Compiling dirs-sys v0.4.1                                                                                                                                                                                                                                                                                       
   Compiling rayon v1.8.1                                                                                                                                                                                                                                                                                          
   Compiling dirs v5.0.1                                                                                                                                                                                                                                                                                           
   Compiling matrixmultiply v0.3.8                                                                                                                                                                                                                                                                                 
   Compiling num-integer v0.1.45                                                                                                                                                                                                                                                                                   
   Compiling sanitize-filename v0.5.0                                                                                                                                                                                                                                                                              
   Compiling flate2 v1.0.28                                                                                                                                                                                                                                                                                        
   Compiling burn-common v0.10.0                                                                                                                                                                                                                                                                                   
   Compiling num-complex v0.4.4                                                                                                                                                                                                                                                                                    
   Compiling tracing-core v0.1.32                                                                                                                                                                                                                                                                                  
   Compiling tracing-log v0.2.0                                                                                                                                                                                                                                                                                    
   Compiling ndarray v0.15.6                                                                                                                                                                                                                                                                                       
   Compiling thread_local v1.1.7                                                                                                                                                                                                                                                                                   
   Compiling smallvec v1.13.1                                                                                                                                                                                                                                                                                      
   Compiling rust-format v0.3.4                                                                                                                                                                                                                                                                                    
   Compiling tracing-subscriber v0.3.18                                                                                                                                                                                                                                                                            
   Compiling nanorand v0.7.0                                                                                                                                                                                                                                                                                       
   Compiling serde_derive v1.0.195                                                                                                                                                                                                                                                                                 
   Compiling thiserror-impl v1.0.56                                                                                                                                                                                                                                                                                
   Compiling burn-tensor-testgen v0.10.0                                                                                                                                                                                                                                                                           
   Compiling strum_macros v0.25.3                                                                                                                                                                                                                                                                                  
   Compiling burn-derive v0.10.0                                                                                                                                                                                                                                                                                   
   Compiling pin-project-internal v1.1.4                                                                                                                                                                                                                                                                           
   Compiling futures-sink v0.3.30                                                                                                                                                                                                                                                                                  
   Compiling protobuf-support v3.3.0                                                                                                                                                                                                                                                                               
   Compiling weezl v0.1.8                                                                                                                                                                                                                                                                                          
   Compiling futures-core v0.3.30                                                                                                                                                                                                                                                                                  
   Compiling protobuf v3.3.0                                                                                                                                                                                                                                                                                       
   Compiling jpeg-decoder v0.3.1                                                                                                                                                                                                                                                                                   
   Compiling fdeflate v0.3.4                                                                                                                                                                                                                                                                                       
   Compiling pin-project v1.1.4                                                                                                                                                                                                                                                                                    
   Compiling flume v0.10.14                                                                                                                                                                                                                                                                                        
   Compiling png v0.17.11                                                                                                                                                                                                                                                                                          
   Compiling gif v0.12.0                                                                                                                                                                                                                                                                                           
   Compiling tiff v0.9.1                                                                                                                                                                                                                                                                                           
   Compiling protobuf-parse v3.3.0                                                                                                                                                                                                                                                                                 
   Compiling protobuf-codegen v3.3.0                                                                                                                                                                                                                                                                               
   Compiling half v2.3.1                                                                                                                                                                                                                                                                                           
   Compiling hashbrown v0.14.3                                                                                                                                                                                                                                                                                     
   Compiling rmp-serde v1.1.2                                                                                                                                                                                                                                                                                      
   Compiling csv v1.3.0                                                                                                                                                                                                                                                                                            
   Compiling burn-tensor v0.10.0                                                                                                                                                                                                                                                                                   
   Compiling bincode v2.0.0-rc.3                                                                                                                                                                                                                                                                                   
   Compiling burn-dataset v0.10.0                                                                                                                                                                                                                                                                                  
   Compiling burn-autodiff v0.10.0                                                                                                                                                                                                                                                                                 
   Compiling exr v1.6.4                                                                                                                                                                                                                                                                                            
   Compiling burn-core v0.10.0                                                                                                                                                                                                                                                                                     
   Compiling burn-ndarray v0.10.0                                                                                                                                                                                                                                                                                  
   Compiling burn-import v0.10.0                                                                                                                                                                                                                                                                                   
   Compiling image v0.24.8                                                                                                                                                                                                                                                                                         
   Compiling burn v0.10.0                                                                                                                                                                                                                                                                                          
   Compiling squeezenet-burn v0.1.0 (C:\Users\anachtmann\Repositories\intern\rust\TinyML\burn-models\squeezenet-burn)                                                                                                                                                                                              
    Finished release [optimized] target(s) in 1m 12s                                                                                                                                                                                                                                                               
     Running `target\release\examples\classify.exe samples/flamingo.jpg`

thread 'main' has overflowed its stack
error: process didn't exit successfully: `target\release\examples\classify.exe samples/flamingo.jpg` (exit code: 0xc00000fd, STATUS_STACK_OVERFLOW)
VirtualNonsense commented 8 months ago

The issue seems to be this line. The programm seems to run as intended up until that point.

VirtualNonsense commented 4 months ago

The issue seems to be fixed now.