Rust 초보자는 Mac에 환경을 구축하고 크레인 모듈을 사용하여 간단한 기계 학습을 한다
맥의 전제였지만 러스트를 도입해 추가 크레인 모듈을 시도하고 간단한 머신러닝을 실시했기 때문에 정리했다.
더 좋은 방법이 있을 것 같아서 차례대로 업데이트하고 싶어요.
코드는 여기.
환경 구조
터미널에서 다음 명령을 실행하여 Rust를 설치합니다.
curl https://sh.rustup.rs -sSf | sh
권한이 통과되지 않을 때 다음 명령을 실행하십시오.
curl https://sh.rustup.rs -sSf | sh -s -- --no-modify-path
다음 명령을 실행하여 경로를 통과합니다.
source $HOME/.cargo/env
카고 버전을 확인하고 Rust가 설치되었는지 확인합니다.cargo --version
버전만 출력하면 OK.cargo 1.58.0
프로젝트 작성
다음 명령을 실행하여 카고에 항목을 만듭니다.
cargo new ml_sample
다음 파일을 만듭니다.|--ml_sample
|-- src
| |-- main.rs
|
|-- Cargo.toml
|-- .gitignore
만든 프로젝트 폴더로 이동합니다.cd ml_sample
외부 크레인 추가
crate.IO에서 기중기의 이름과 버전을 확인하세요. 카고.나는 Toml 파일에 보충할 것이다.
실제 사용한 후 기계 학습에 사용할 수 있는 스마트 코어를 넣어 보세요.
Cargo.toml
[package]
name = "ml_sample"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
# ここにインストールする crate を書いていく
smartcore = "0.2.0"
자체 제작 모듈
다음은 자신의 모듈을 추가하기 위해 새로운 프로젝트 Hello를 제작합니다.
cargo new hello
문서의 구성은 다음과 같다.|--ml_sample
|-- src
| |-- main.rs
|
|-- Cargo.toml
|-- .gitignore
|-- hello
|-- src
| |-- main.rs
|
|-- Cargo.toml
hello/src 폴더 바로 아래의lib.rs를 만듭니다.|--ml_sample
|-- src
| |-- main.rs
|
|-- Cargo.toml
|-- .gitignore
|-- hello
|-- src
| |-- main.rs
| |-- lib.rs
|
|-- Cargo.toml
lib.rs에 다음 코드를 기록합니다. 파라미터만 읽고 Hello, World의 간단한 모듈을 만듭니다.hello/src/lib.rs
pub fn hello_world(word: &str) -> String {
let greeding :String = "Hello, ".to_owned() + word + "!";
return greeding
}
나는 아직mod를 어떻게 사용하는지 모른다.Rust도 리턴을 명확하게 표시하지 않을 때가 있지만, 이 방면의 처리는 좀 더 배워야 한다.
위쪽은 외부 크레인 모듈을 사용하지 않기 때문에 hello/Cargo를 부탁합니다.toml 파일을 업데이트하지 않습니다.
최초의 카고.toml 파일에 자체 제작 모듈의 정보를 추가합니다.
[dependencies.hello]
path = "./hello"
전체 기록은 다음과 같다.Cargo.toml
[package]
name = "ml_sample"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
smartcore = "0.2.0"
# 以下を追加
[dependencies.hello]
path = "./hello"
아래도 될 것 같은데.[dependencies]
smartcore = "0.2.0"
hello = {path = "./hello"} # 追加
파일 실행
main.업데이트
src/main.rs
extern crate hello;
fn main() {
let word:&str = "World";
println!("{:?}", hello::hello_world(word));
}
터미널에 다음 명령을 입력하고 구축합니다.cargo build
터미널에서 다음 명령을 입력하여 구축된 실행 파일을 실행합니다.target/debug/ml_sample
다음 내용을 출력하면 성공합니다.Hello, World!
기계 학습
기계 학습 부분에서 아래 사이트의 코드를 약간 바꾸었다.
src/main.rs
// 機械学習用のクレート
use smartcore::dataset::boston;
use smartcore::linalg::naive::dense_matrix::DenseMatrix;
use smartcore::model_selection::train_test_split;
use smartcore::linear::linear_regression::{LinearRegression, LinearRegressionParameters, LinearRegressionSolverName};
use smartcore::metrics::mean_squared_error;
fn main() {
// データセットのダウンロード
let boston_data = boston::load_dataset();
// 特徴量を arrayデータへ変換
let x = DenseMatrix::from_array(
boston_data.num_samples,
boston_data.num_features,
&boston_data.data,
);
// 目的変数
let y = boston_data.target;
// 評価データと訓練データに分割
let (x_train, x_test, y_train, y_test) = train_test_split(
&x, // training data
&y, // target
0.2, // test_size
false, // shuffle
);
// 学習
let model = LinearRegression::fit(
&x_train,
&y_train,
LinearRegressionParameters::default().
with_solver(LinearRegressionSolverName::QR)
).unwrap();
// 推論
let y_pred = model.predict(&x_test).unwrap();
// 評価
let metrics = mean_squared_error(&y_test, &y_pred);
// 評価結果を出力
println!("mse:{}", metrics);
}
출력:mse:12.573088
다음은 csv에서 표 데이터를 읽고 기계 학습을 시작하려고 합니다.
이상은 끝까지 읽어주셔서 감사합니다.
사이트 축소판 그림
Reference
이 문제에 관하여(Rust 초보자는 Mac에 환경을 구축하고 크레인 모듈을 사용하여 간단한 기계 학습을 한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/megane_otoko/articles/085_rust_machine_learning텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)