[INFO] updating cached repository tkyk0317/deeplearning_by_rust [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/tkyk0317/deeplearning_by_rust [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/tkyk0317/deeplearning_by_rust" "work/ex/clippy-test-run/sources/stable/gh/tkyk0317/deeplearning_by_rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/tkyk0317/deeplearning_by_rust'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/tkyk0317/deeplearning_by_rust" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/tkyk0317/deeplearning_by_rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/tkyk0317/deeplearning_by_rust'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] c021c5d4b4ea96b3ad4b2b9cab204e2bb43ba3d2 [INFO] sha for GitHub repo tkyk0317/deeplearning_by_rust: c021c5d4b4ea96b3ad4b2b9cab204e2bb43ba3d2 [INFO] validating manifest of tkyk0317/deeplearning_by_rust on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of tkyk0317/deeplearning_by_rust on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing tkyk0317/deeplearning_by_rust [INFO] finished frobbing tkyk0317/deeplearning_by_rust [INFO] frobbed toml for tkyk0317/deeplearning_by_rust written to work/ex/clippy-test-run/sources/stable/gh/tkyk0317/deeplearning_by_rust/Cargo.toml [INFO] started frobbing tkyk0317/deeplearning_by_rust [INFO] finished frobbing tkyk0317/deeplearning_by_rust [INFO] frobbed toml for tkyk0317/deeplearning_by_rust written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/tkyk0317/deeplearning_by_rust/Cargo.toml [INFO] crate tkyk0317/deeplearning_by_rust has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting tkyk0317/deeplearning_by_rust against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/tkyk0317/deeplearning_by_rust:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 5780b645767471e7053ed663c0da09c427cd0b2f2d7451aae53b9475aa9ad816 [INFO] running `"docker" "start" "-a" "5780b645767471e7053ed663c0da09c427cd0b2f2d7451aae53b9475aa9ad816"` [INFO] [stderr] Compiling typenum v1.9.0 [INFO] [stderr] Checking approx v0.1.1 [INFO] [stderr] Checking mnist v0.4.0 [INFO] [stderr] Checking alga v0.5.2 [INFO] [stderr] Checking generic-array v0.2.1 [INFO] [stderr] Checking nalgebra v0.12.3 [INFO] [stderr] Checking deeplearning_from_scratch v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/neuron.rs:17:18 [INFO] [stderr] | [INFO] [stderr] 17 | Neuron { bias: bias, data: data, weight: weight } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `bias` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/neuron.rs:17:30 [INFO] [stderr] | [INFO] [stderr] 17 | Neuron { bias: bias, data: data, weight: weight } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/neuron.rs:17:42 [INFO] [stderr] | [INFO] [stderr] 17 | Neuron { bias: bias, data: data, weight: weight } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `weight` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/neural.rs:52:19 [INFO] [stderr] | [INFO] [stderr] 52 | NeuralNW{ input_data: input_data, input_bias: input_bias, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `input_data` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/neural.rs:52:43 [INFO] [stderr] | [INFO] [stderr] 52 | NeuralNW{ input_data: input_data, input_bias: input_bias, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `input_bias` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/neural.rs:53:19 [INFO] [stderr] | [INFO] [stderr] 53 | input_weight: input_weight, reference: reference } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `input_weight` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/neural.rs:53:47 [INFO] [stderr] | [INFO] [stderr] 53 | input_weight: input_weight, reference: reference } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `reference` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/neuron.rs:17:18 [INFO] [stderr] | [INFO] [stderr] 17 | Neuron { bias: bias, data: data, weight: weight } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `bias` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/neuron.rs:17:30 [INFO] [stderr] | [INFO] [stderr] 17 | Neuron { bias: bias, data: data, weight: weight } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/neuron.rs:17:42 [INFO] [stderr] | [INFO] [stderr] 17 | Neuron { bias: bias, data: data, weight: weight } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `weight` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/neural.rs:52:19 [INFO] [stderr] | [INFO] [stderr] 52 | NeuralNW{ input_data: input_data, input_bias: input_bias, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `input_data` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/neural.rs:52:43 [INFO] [stderr] | [INFO] [stderr] 52 | NeuralNW{ input_data: input_data, input_bias: input_bias, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `input_bias` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/neural.rs:53:19 [INFO] [stderr] | [INFO] [stderr] 53 | input_weight: input_weight, reference: reference } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `input_weight` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/neural.rs:53:47 [INFO] [stderr] | [INFO] [stderr] 53 | input_weight: input_weight, reference: reference } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `reference` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unused imports: `AxesCommon`, `Caption`, `Color`, `Figure`, `Fix` [INFO] [stderr] --> src/main.rs:7:15 [INFO] [stderr] | [INFO] [stderr] 7 | use gnuplot::{Figure, Caption, Color, AxesCommon, Fix}; [INFO] [stderr] | ^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^^^^ ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::vec::Vec` [INFO] [stderr] --> src/main.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::vec::Vec; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::rc::Rc` [INFO] [stderr] --> src/neuron.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::rc::Rc; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cell::RefCell` [INFO] [stderr] --> src/neuron.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::cell::RefCell; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/neural.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | return loss_func::cross_entropy(&x2, &*obj.reference.borrow()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `loss_func::cross_entropy(&x2, &*obj.reference.borrow())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/neural.rs:35:5 [INFO] [stderr] | [INFO] [stderr] 35 | return loss_func::cross_entropy(&x2, &*obj.reference.borrow()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `loss_func::cross_entropy(&x2, &*obj.reference.borrow())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/gradient.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | return Box::new(result); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Box::new(result)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::rc::Rc` [INFO] [stderr] --> src/neuron.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::rc::Rc; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cell::RefCell` [INFO] [stderr] --> src/neuron.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::cell::RefCell; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/neural.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | return loss_func::cross_entropy(&x2, &*obj.reference.borrow()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `loss_func::cross_entropy(&x2, &*obj.reference.borrow())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/neural.rs:35:5 [INFO] [stderr] | [INFO] [stderr] 35 | return loss_func::cross_entropy(&x2, &*obj.reference.borrow()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `loss_func::cross_entropy(&x2, &*obj.reference.borrow())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/gradient.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | return Box::new(result); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Box::new(result)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rows` [INFO] [stderr] --> src/main.rs:87:16 [INFO] [stderr] | [INFO] [stderr] 87 | let (size, rows, cols) = (50_000, 28, 28); [INFO] [stderr] | ^^^^ help: consider using `_rows` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cols` [INFO] [stderr] --> src/main.rs:87:22 [INFO] [stderr] | [INFO] [stderr] 87 | let (size, rows, cols) = (50_000, 28, 28); [INFO] [stderr] | ^^^^ help: consider using `_cols` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `trn_lbl` [INFO] [stderr] --> src/main.rs:88:26 [INFO] [stderr] | [INFO] [stderr] 88 | let Mnist { trn_img, trn_lbl, .. } = MnistBuilder::new().label_format_digit() [INFO] [stderr] | ^^^^^^^ help: try ignoring the field: `trn_lbl: _` [INFO] [stderr] [INFO] [stderr] warning: method is never used: `step` [INFO] [stderr] --> src/neuron.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn step(&self) -> DMatrix { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `relu` [INFO] [stderr] --> src/neuron.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | pub fn relu(&self) -> DMatrix { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `numerical_diff` [INFO] [stderr] --> src/gradient.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 57 | pub fn numerical_diff f64>(x: f64, func: F) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `sum_of_square` [INFO] [stderr] --> src/loss_func.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn sum_of_square(result: &DMatrix, reference: &DMatrix) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/neuron.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | / match i > 0. { [INFO] [stderr] 29 | | true => 1., [INFO] [stderr] 30 | | false => 0. [INFO] [stderr] 31 | | } [INFO] [stderr] | |_____________^ help: consider using an if/else expression: `if i > 0. { 1. } else { 0. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `/` [INFO] [stderr] --> src/neuron.rs:53:37 [INFO] [stderr] | [INFO] [stderr] 53 | let _max = _dot.iter().fold(0.0 / 0.0, |acc, i| i.max(acc) ); // NaNでないものを返す. [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::eq_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] warning: constant division of 0.0 with 0.0 will always result in NaN [INFO] [stderr] --> src/neuron.rs:53:37 [INFO] [stderr] | [INFO] [stderr] 53 | let _max = _dot.iter().fold(0.0 / 0.0, |acc, i| i.max(acc) ); // NaNでないものを返す. [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::zero_divided_by_zero)] on by default [INFO] [stderr] = help: Consider using `std::f64::NAN` if you would like a constant representing NaN [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_divided_by_zero [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:95:86 [INFO] [stderr] | [INFO] [stderr] 95 | let _r1 = DMatrix::::from_iterator(1, trn_img.len(), trn_img.iter().map(|i| *i as f64)); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(*i)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `deeplearning_from_scratch`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: unused variable: `rows` [INFO] [stderr] --> src/main.rs:87:16 [INFO] [stderr] | [INFO] [stderr] 87 | let (size, rows, cols) = (50_000, 28, 28); [INFO] [stderr] | ^^^^ help: consider using `_rows` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cols` [INFO] [stderr] --> src/main.rs:87:22 [INFO] [stderr] | [INFO] [stderr] 87 | let (size, rows, cols) = (50_000, 28, 28); [INFO] [stderr] | ^^^^ help: consider using `_cols` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `trn_lbl` [INFO] [stderr] --> src/main.rs:88:26 [INFO] [stderr] | [INFO] [stderr] 88 | let Mnist { trn_img, trn_lbl, .. } = MnistBuilder::new().label_format_digit() [INFO] [stderr] | ^^^^^^^ help: try ignoring the field: `trn_lbl: _` [INFO] [stderr] [INFO] [stderr] warning: method is never used: `step` [INFO] [stderr] --> src/neuron.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn step(&self) -> DMatrix { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `relu` [INFO] [stderr] --> src/neuron.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | pub fn relu(&self) -> DMatrix { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `numerical_diff` [INFO] [stderr] --> src/gradient.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 57 | pub fn numerical_diff f64>(x: f64, func: F) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `sum_of_square` [INFO] [stderr] --> src/loss_func.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn sum_of_square(result: &DMatrix, reference: &DMatrix) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/neuron.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | / match i > 0. { [INFO] [stderr] 29 | | true => 1., [INFO] [stderr] 30 | | false => 0. [INFO] [stderr] 31 | | } [INFO] [stderr] | |_____________^ help: consider using an if/else expression: `if i > 0. { 1. } else { 0. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `/` [INFO] [stderr] --> src/neuron.rs:53:37 [INFO] [stderr] | [INFO] [stderr] 53 | let _max = _dot.iter().fold(0.0 / 0.0, |acc, i| i.max(acc) ); // NaNでないものを返す. [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::eq_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] warning: constant division of 0.0 with 0.0 will always result in NaN [INFO] [stderr] --> src/neuron.rs:53:37 [INFO] [stderr] | [INFO] [stderr] 53 | let _max = _dot.iter().fold(0.0 / 0.0, |acc, i| i.max(acc) ); // NaNでないものを返す. [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::zero_divided_by_zero)] on by default [INFO] [stderr] = help: Consider using `std::f64::NAN` if you would like a constant representing NaN [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_divided_by_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | / match x > 0. { [INFO] [stderr] 23 | | true => 1, [INFO] [stderr] 24 | | false => 0, [INFO] [stderr] 25 | | } [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if x > 0. { 1 } else { 0 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:38:33 [INFO] [stderr] | [INFO] [stderr] 38 | for i in -100..100 { x.push((i as f64) / 10.); } [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(i)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:95:86 [INFO] [stderr] | [INFO] [stderr] 95 | let _r1 = DMatrix::::from_iterator(1, trn_img.len(), trn_img.iter().map(|i| *i as f64)); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(*i)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `deeplearning_from_scratch`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "5780b645767471e7053ed663c0da09c427cd0b2f2d7451aae53b9475aa9ad816"` [INFO] running `"docker" "rm" "-f" "5780b645767471e7053ed663c0da09c427cd0b2f2d7451aae53b9475aa9ad816"` [INFO] [stdout] 5780b645767471e7053ed663c0da09c427cd0b2f2d7451aae53b9475aa9ad816