목록개발 및 공부 (189)
NeuroWhAI의 잡블로그
어제 했는데 오늘 쓰네요 ㅋㅋ 어제는 텐서보드를 사용해서 이전에 만든 모델을 텐서보드로 볼 수 있게 코드를 수정했습니다. 아, 또 학습데이터를 아래처럼 외부 파일로 분리시켰습니다. data.csv 0, 0, 1, 0, 0 1, 0, 0, 1, 0 1, 1, 0, 0, 1 0, 0, 1, 0, 0 0, 0, 1, 0, 0 0, 1, 0, 0, 1 첫 두열이 x_data고 나머지가 y_data입니다. main.py 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 5..
저번에 http://neurowhai.tistory.com/80 여기에서 간단한 분류 모델이라고 올렸었는데 이건 단층 신경망이라 제대로 학습이 안됬었습니다. 그래서 책의 다음 챕터에서 심층 신경망으로 변경하는데요. 따라 해봤습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 import tensorflow as tf import numpy as np # [털, 날개] x_data = np.array( [[0, 0], [1, 0], [1, 1], [0, 0]..
넵 헌혈하고 당직서서 컨디션이 똥이지만 열심히(?) 책 따라하고 있습니다. 오늘한건 [털 유무, 날개 유무]라는 입력데이터와 [기타, 포유류, 조류]로 원 핫 인코딩된 출력을 내는 분류 모델입니다. 미리 스포해드리자면 이건 단층 신경망이라 분류가 제대로 안됩니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 import tensorflow as tf import numpy as np # [털, 날개] x_data = np.array( [[0, 0], [1, 0], [1, 1], [0, 0], [..
Rust 라이브러리인 Tokio를 배우려고 합니다. 일단 공식 홈페이지의 예제를 따라하고 있는데 아는거라곤 문법 뿐이더라고요 하하하하하 직접 하나씩 따라하고 싶으신 분은 아래 링크를 보시면 됩니다. 저는 영어가 안되서 힘들었..ㅠㅠ https://tokio.rs/docs/getting-started/futures/ 아래 코드는 Futures 라이브러리와 Tokio를 써서 숫자가 소수인지 아닌지를 비동기적으로 판별하는 코드입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 ..
으으 머신러닝이랑 관련없이 좀 이해가 안되는 부분이 있어서 오래 걸렸네요. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 import tensorflow as tf # 입력, 목표 출력 x_data = [1, 2, 3] y_data = [1, 2, 3] # '[1]' Shape을 가지는 변수 W, b를 -1.0 이상 1.0 미만의 균등한 범위에서 랜덤값으로 초기화 W = tf.Variable(tf.random_uniform([1], -1.0, 1.0)) b = tf.Variable(tf.random_uniform([1], -1.0, 1.0)) # 입..
문서 : https://carllerche.github.io/bytes/bytes/struct.Bytes.html Crate : https://crates.io/crates/bytes use bytes::Bytes; let mut mem = Bytes::from(&b"Hello world"[..]); let a = mem.slice(0, 5); assert_eq!(&a[..], b"Hello"); let b = mem.split_to(6); assert_eq!(&mem[..], b"world"); assert_eq!(&b[..], b"Hello "); 기본적으로 바이트 배열을 표현하는 구조체 입니다. 특이한 점은 내부의 배열을 레퍼런스 카운팅을 통해 관리하며 각 Bytes들은 배열의 범위만을 담고 있을 ..
https://aturon.github.io/style/naming.html 여기를 참고하였습니다. [명명법 종류] snake_case : 단어를 전부 소문자로 적고 언더바로 구분함. SCREAMING_SNAKE_CASE : 단어를 전부 대문자로 적고 언더바로 구분함. CamelCase : 단어의 첫 문자만 대문자로 적으며 구분자 없음.UUID같은 약어는 한 단어로 취급하므로 Uuid로 적어야 합니다. [명명 규칙] Crates : snake_case 논란 있음 (단어 하나만 쓰는걸 권장) Modules(모듈) : snake_case Types(타입) : CamelCase Traits : CamelCase (타동사, 명사, 형용사를 사용하며 '-able'과 같은 접미사를 피하라) Enum(열거형) : C..
https://github.com/murarth/rusti rusti는 파이썬과 같은 인터프리터 언어에선 당연히 되는, 하스켈의 GHCi 같은 기능을 제공하는 툴 입니다. rusti=> 1 + 4 5 이런 느낌이죠.Rust 식을 적으면 바로 실행해서 결과를 알려줍니다. rusti=> use std::env; rusti=> env::args().collect::() ["target/debug/rusti"] rusti=> use std::iter::AdditiveIterator; rusti=> (1..100).filter(|x| *x % 19 == 3).fold(0, |acc, x| acc + x) 303 당연히 이렇게 여러 명령어를 연계하는것도 됩니다. 명령어도 몇개 제공하는데 그중 .type 명령어는 식..
아주 쉽습니다. git remote set-url --add --push {NAME} {URL} 이 명령어를 써서 같은 NAME에 다른 URL을 여러개 등록하면 됩니다. 그럼 git push {NAME} 하면 등록한 모든 URL로 push가 진행됩니다. 다만 자주 쓰이는 origin에 2개 이상의 remote를 등록하는건 권장되지 않습니다. all이라는 새로운 remote를 만들고 여기에 여러개를 등록해서 쓰는게 좋다고 합니다. 예를 들자면 git remote add all https://...first.git 로 all이라는 이름의 remote를 만듭니다. 그리고 git remote set-url --add --push all https://...first.git git remote set-url --..