[INFO] cloning repository https://github.com/DeadNikol/rust-nn
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/DeadNikol/rust-nn" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDeadNikol%2Frust-nn", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDeadNikol%2Frust-nn'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] bb77458dceb15599e4f602b4dc54d8564cef9b59
[INFO] checking DeadNikol/rust-nn/bb77458dceb15599e4f602b4dc54d8564cef9b59 against 1ed2df61a19042f231709eb05d032ae9e2cb2084 for pr-160235
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDeadNikol%2Frust-nn" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/DeadNikol/rust-nn
[INFO] finished tweaking git repo https://github.com/DeadNikol/rust-nn
[INFO] tweaked toml for git repo https://github.com/DeadNikol/rust-nn written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/DeadNikol/rust-nn on toolchain 1ed2df61a19042f231709eb05d032ae9e2cb2084
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1ed2df61a19042f231709eb05d032ae9e2cb2084" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/DeadNikol/rust-nn already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1ed2df61a19042f231709eb05d032ae9e2cb2084" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:00c5645b54fe3ce5dae1417175e3c7fb6a6646c021d554ecd63a097b8b9f3602" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 15ab1537642fb048139d8762df026a42dcc9406bf6785a44ffe2140e9ea8a734
[INFO] running `Command { std: "docker" "start" "15ab1537642fb048139d8762df026a42dcc9406bf6785a44ffe2140e9ea8a734", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "15ab1537642fb048139d8762df026a42dcc9406bf6785a44ffe2140e9ea8a734", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "15ab1537642fb048139d8762df026a42dcc9406bf6785a44ffe2140e9ea8a734" "/opt/rustwide/cargo-home/bin/cargo" "+1ed2df61a19042f231709eb05d032ae9e2cb2084" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "15ab1537642fb048139d8762df026a42dcc9406bf6785a44ffe2140e9ea8a734", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "15ab1537642fb048139d8762df026a42dcc9406bf6785a44ffe2140e9ea8a734" "/opt/rustwide/cargo-home/bin/cargo" "+1ed2df61a19042f231709eb05d032ae9e2cb2084" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking simd-adler32 v0.3.9
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]     Checking libloading v0.8.9
[INFO] [stderr]     Checking plotters-backend v0.3.7
[INFO] [stderr]    Compiling cc v1.2.63
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling yeslogic-fontconfig-sys v6.0.1
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]     Checking weezl v0.1.12
[INFO] [stderr]    Compiling pathfinder_simd v0.5.6
[INFO] [stderr]    Compiling font-kit v0.14.3
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking jpeg-decoder v0.3.2
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]     Checking dlib v0.5.3
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking walkdir v2.5.0
[INFO] [stderr]     Checking memchr v2.8.0
[INFO] [stderr]     Checking gif v0.12.0
[INFO] [stderr]     Checking float-ord v0.3.2
[INFO] [stderr]     Checking either v1.16.0
[INFO] [stderr]     Checking bitflags v2.11.1
[INFO] [stderr]     Checking chacha20 v0.10.0
[INFO] [stderr]     Checking ttf-parser v0.20.0
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]     Checking plotters-svg v0.3.7
[INFO] [stderr]     Checking pathfinder_geometry v0.5.1
[INFO] [stderr]     Checking rand v0.10.1
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]     Checking csv-core v0.1.13
[INFO] [stderr]     Checking chrono v0.4.45
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]    Compiling freetype-sys v0.20.1
[INFO] [stderr]     Checking csv v1.4.0
[INFO] [stderr]     Checking plotters-bitmap v0.3.7
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking NN v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `clone` and `env::current_exe`
[INFO] [stdout]  --> src/tensor.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     clone,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 9 |     env::current_exe,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::panic`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::panic;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cell::RefCell` and `rc::Rc`
[INFO] [stdout]  --> src/main.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::{cell::RefCell, rc::Rc};
[INFO] [stdout]   |           ^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Itertools`, `Position::Last`, and `iproduct`
[INFO] [stdout]  --> src/main.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | use itertools::{Itertools, Position::Last, iproduct};
[INFO] [stdout]   |                 ^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::vec`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rayon::vec;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::network::Network`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::network::Network;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Operation` and `Tensor`
[INFO] [stdout]  --> src/graph.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::tensor::{Operation, Tensor, TensorData};
[INFO] [stdout]   |                     ^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/network.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 |     batch_iterator::{self, BatchIterator},
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `clone` and `env::current_exe`
[INFO] [stdout]  --> src/tensor.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     clone,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 9 |     env::current_exe,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::panic`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::panic;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cell::RefCell` and `rc::Rc`
[INFO] [stdout]  --> src/main.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::{cell::RefCell, rc::Rc};
[INFO] [stdout]   |           ^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Itertools`, `Position::Last`, and `iproduct`
[INFO] [stdout]  --> src/main.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | use itertools::{Itertools, Position::Last, iproduct};
[INFO] [stdout]   |                 ^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::vec`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rayon::vec;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::network::Network`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::network::Network;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Operation` and `Tensor`
[INFO] [stdout]  --> src/graph.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::tensor::{Operation, Tensor, TensorData};
[INFO] [stdout]   |                     ^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/network.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 |     batch_iterator::{self, BatchIterator},
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `require_grad`
[INFO] [stdout]    --> src/tensor.rs:502:13
[INFO] [stdout]     |
[INFO] [stdout] 502 |         let require_grad = {
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_require_grad`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `layer`
[INFO] [stdout]   --> src/main.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let layer = tensor::Tensor::new(
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_layer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kernel`
[INFO] [stdout]   --> src/main.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let kernel = Tensor::new(
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_kernel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent_layer_im2col`
[INFO] [stdout]    --> src/main.rs:167:9
[INFO] [stdout]     |
[INFO] [stdout] 167 |     let parent_layer_im2col = conv2d_output.tensor_data.borrow().parents[0].clone();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_layer_im2col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent_kernel_im2col`
[INFO] [stdout]    --> src/main.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     let parent_kernel_im2col = conv2d_output.tensor_data.borrow().parents[1].clone();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_kernel_im2col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ReLu`, `MSE`, `Sigmoid`, `Tanh`, and `CrossEntropyWithSoftmax` are never constructed
[INFO] [stdout]   --> src/tensor.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum Operation {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 19 |     ReLu,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 20 |     MSE,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 21 |     Sigmoid,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 22 |     Tanh,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 23 |     CrossEntropyWithSoftmax,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Operation` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stride` is never read
[INFO] [stdout]   --> src/tensor.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct TensorData {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub stride: Vec<usize>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/tensor.rs:83:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl TensorData {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn zero_grad(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn relu(&self) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn pad(&self, padding: (usize, usize, usize, usize)) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     pub fn sigmoid(&self) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     pub fn tanh(&self) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 307 |     pub fn softmax(&self) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |     pub fn cross_entropy_with_softmax(&self, targets: &TensorData) -> (Vec<f32>, f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 391 |     pub fn mse(&self, right_tensor: &TensorData) -> f32 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tensor.rs:444:12
[INFO] [stdout]     |
[INFO] [stdout] 421 | impl Tensor {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 444 |     pub fn uniform(low: f32, high: f32, shape: Vec<usize>, require_grad: bool) -> Tensor {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 488 |     pub fn relu(&self) -> Tensor {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn sigmoid(&self) -> Tensor {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 518 |     pub fn tanh(&self) -> Tensor {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 529 |     pub fn cross_entropy_with_softmax(&self, target: &Tensor) -> Tensor {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 587 |     pub fn mse(&self, y_true: &Tensor) -> Tensor {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 625 |     pub fn grad(&self) -> Tensor {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BatchIterator` is never constructed
[INFO] [stdout]  --> src/batch_iterator.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct BatchIterator {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `reset_indices`, and `num_batches` are never used
[INFO] [stdout]   --> src/batch_iterator.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl BatchIterator {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 18 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn reset_indices(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn num_batches(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Operation` is never used
[INFO] [stdout]  --> src/layers.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait Operation {
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ActivationFunction` is never used
[INFO] [stdout]  --> src/layers.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub trait ActivationFunction {
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `LossFunction` is never used
[INFO] [stdout]  --> src/layers.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub trait LossFunction {
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Linear` is never constructed
[INFO] [stdout]   --> src/layers.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Linear {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/layers.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Linear {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 19 |     pub fn new(input_features: usize, output_features: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReLu` is never constructed
[INFO] [stdout]   --> src/layers.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct ReLu {}
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/layers.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl ReLu {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 35 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MSE` is never constructed
[INFO] [stdout]   --> src/layers.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct MSE {}
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/layers.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl MSE {
[INFO] [stdout]    | -------- associated function in this implementation
[INFO] [stdout] 47 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Loss` is never used
[INFO] [stdout]   --> src/network.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum Loss {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Network` is never constructed
[INFO] [stdout]   --> src/network.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Network {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `Linear`, `Conv2d`, `forward`, and `fit` are never used
[INFO] [stdout]   --> src/network.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Network {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 21 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn Linear(&mut self, n_input: usize, n_output: usize) -> (Tensor, Tensor) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn Conv2d(
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn forward<F>(&self, data: &Tensor, forward_fn: F) -> Tensor
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn fit<F>(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `plot_losses` is never used
[INFO] [stdout]    --> src/network.rs:120:8
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn plot_losses(losses: &[f32], output_path: &str) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SGD` is never constructed
[INFO] [stdout]  --> src/optims.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct SGD {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `backward_step` are never used
[INFO] [stdout]   --> src/optims.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl SGD {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 16 |     pub fn new(parametres: Vec<Rc<RefCell<TensorData>>>, lr: f32, momentum: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn backward_step(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `Linear` should have a snake case name
[INFO] [stdout]   --> src/network.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn Linear(&mut self, n_input: usize, n_output: usize) -> (Tensor, Tensor) {
[INFO] [stdout]    |            ^^^^^^ help: convert the identifier to snake case: `linear`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `Conv2d` should have a snake case name
[INFO] [stdout]   --> src/network.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn Conv2d(
[INFO] [stdout]    |            ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `conv2d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `require_grad`
[INFO] [stdout]    --> src/tensor.rs:502:13
[INFO] [stdout]     |
[INFO] [stdout] 502 |         let require_grad = {
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_require_grad`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `layer`
[INFO] [stdout]   --> src/main.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let layer = tensor::Tensor::new(
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_layer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kernel`
[INFO] [stdout]   --> src/main.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let kernel = Tensor::new(
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_kernel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent_layer_im2col`
[INFO] [stdout]    --> src/main.rs:167:9
[INFO] [stdout]     |
[INFO] [stdout] 167 |     let parent_layer_im2col = conv2d_output.tensor_data.borrow().parents[0].clone();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_layer_im2col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent_kernel_im2col`
[INFO] [stdout]    --> src/main.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     let parent_kernel_im2col = conv2d_output.tensor_data.borrow().parents[1].clone();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_kernel_im2col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Sigmoid` is never constructed
[INFO] [stdout]   --> src/tensor.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum Operation {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 21 |     Sigmoid,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Operation` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stride` is never read
[INFO] [stdout]   --> src/tensor.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct TensorData {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub stride: Vec<usize>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `pad` and `sigmoid` are never used
[INFO] [stdout]    --> src/tensor.rs:230:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl TensorData {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn pad(&self, padding: (usize, usize, usize, usize)) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     pub fn sigmoid(&self) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `sigmoid` and `grad` are never used
[INFO] [stdout]    --> src/tensor.rs:500:12
[INFO] [stdout]     |
[INFO] [stdout] 421 | impl Tensor {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn sigmoid(&self) -> Tensor {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 625 |     pub fn grad(&self) -> Tensor {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `num_batches` is never used
[INFO] [stdout]   --> src/batch_iterator.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl BatchIterator {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn num_batches(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Operation` is never used
[INFO] [stdout]  --> src/layers.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait Operation {
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ActivationFunction` is never used
[INFO] [stdout]  --> src/layers.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub trait ActivationFunction {
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `LossFunction` is never used
[INFO] [stdout]  --> src/layers.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub trait LossFunction {
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Linear` is never constructed
[INFO] [stdout]   --> src/layers.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Linear {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/layers.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Linear {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 19 |     pub fn new(input_features: usize, output_features: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReLu` is never constructed
[INFO] [stdout]   --> src/layers.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct ReLu {}
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/layers.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl ReLu {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 35 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MSE` is never constructed
[INFO] [stdout]   --> src/layers.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct MSE {}
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/layers.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl MSE {
[INFO] [stdout]    | -------- associated function in this implementation
[INFO] [stdout] 47 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `Conv2d` is never used
[INFO] [stdout]   --> src/network.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Network {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn Conv2d(
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `Linear` should have a snake case name
[INFO] [stdout]   --> src/network.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn Linear(&mut self, n_input: usize, n_output: usize) -> (Tensor, Tensor) {
[INFO] [stdout]    |            ^^^^^^ help: convert the identifier to snake case: `linear`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `Conv2d` should have a snake case name
[INFO] [stdout]   --> src/network.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn Conv2d(
[INFO] [stdout]    |            ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `conv2d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.37s
[INFO] running `Command { std: "docker" "inspect" "15ab1537642fb048139d8762df026a42dcc9406bf6785a44ffe2140e9ea8a734", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "15ab1537642fb048139d8762df026a42dcc9406bf6785a44ffe2140e9ea8a734", kill_on_drop: false }`
[INFO] [stdout] 15ab1537642fb048139d8762df026a42dcc9406bf6785a44ffe2140e9ea8a734
