Notice
Recent Posts
Recent Comments
NeuroWhAI의 잡블로그
[Rust] 퍼셉트론 본문
Rust에 익숙해질겸 '밑바닥 부터 시작하는 딥러닝' 책을 Rust로도 실습해서 올릴 생각입니다.
다만 본인도 Rust를 잘하는게 아니므로 Rust 공부용으로 보시진 말아주세요.
일단 되나 안되나 테스트 용도로 2장의 퍼셉트론 AND 게이트를 구현해본 코드입니다.
라이브러리는 'rulinalg'를 사용했습니다.
코드:
#[macro_use]
extern crate rulinalg;
use rulinalg::matrix::{BaseMatrix, Matrix};
fn and_gate(x1: f32, x2: f32) -> f32 {
let x = matrix![x1, x2];
let w = matrix![0.5, 0.5f32];
let b = -0.7;
let out = x.elemul(&w).sum() + b;
if out > 0f32 {
1.0
}
else {
0.0
}
}
fn main() {
let input: Matrix<f32> = matrix![0.0, 0.0;
0.0, 1.0;
1.0, 0.0;
1.0, 1.0];
for x in input.row_iter() {
let mut row = x.iter();
let x1 = row.next().unwrap();
let x2 = row.next().unwrap();
println!("({}, {}) -> {}", x1, x2, and_gate(*x1, *x2));
}
}
결과:
(0, 0) -> 0
(0, 1) -> 0
(1, 0) -> 0
(1, 1) -> 1
'개발 및 공부 > 알고리즘' 카테고리의 다른 글
[Rust] 활성화 함수 - '밑바닥부터 시작하는 딥러닝' 3장 (0) | 2018.07.14 |
---|---|
[Rust] 퍼셉트론 - '밑바닥부터 시작하는 딥러닝' 2장 (0) | 2018.07.14 |
[Keras] Attention 매커니즘 간단한 예제 (0) | 2018.06.02 |
[C++] Q-Learning : Frozen Lake 코드 (0) | 2018.06.02 |
알고리즘 문제 풀땐 왠만하면 전용 입출력 라이브러리를 사용해야 할듯 (0) | 2018.02.24 |
Comments