목록개발 및 공부 (189)
NeuroWhAI의 잡블로그
confusion_matrix는 scikit-learn이라는 라이브러리에서 지원하는 함수로서 입력에 대해 모델이 예측한 결과 클래스와 실제 목표 클래스가 일치하는 개수를 센 결과를 반환해줍니다. 케라스 책 보다가 나와서 검색해본겁니다 ㅎ 반환하는 결과는 아래처럼 실제 목표 클래스는 행으로, 예측한 클래스는 열로 나타낸 행렬이 됩니다. y_true = [2, 0, 2, 2, 0, 1] # 목표 클래스 y_pred = [0, 0, 2, 2, 0, 2] # 예측 클래스 confusion_matrix(y_true, y_pred) # 예측: 0 1 2 # ↓목표array([[2, 0, 0], # 0 [0, 0, 1], # 1 [1, 0, 2]])# 2 그러니까 정확도가 100%라면 위 행렬에서 좌-우 대각선에만 ..
아래 링크는 읽어보시면 좋을 것들. execution.h : http://en.cppreference.com/w/cpp/header/execution policy : http://en.cppreference.com/w/cpp/algorithm/execution_policy_tag_t stackoverflow : https://stackoverflow.com/a/47706880 C++17에 추가된 표준이라고 합니다. 다 테스트는 안해봤는데 아직 제대로 지원하는 컴파일러를 못찾았습니다. 직역하면 '실행 정책'이 되겠네요. 알고리즘을 순차적으로 실행할지 병렬적으로 실행할지 선택권을 줍니다. 예를 들어서 C++17 버전의 std::sort를 보면 이렇게 ExecutionPolicy를 받는 버전이 추가됬는데 여기..
※ 이 글은 '코딩셰프의 3분 딥러닝 케라스맛'이라는 책을 보고 실습한걸 기록한 글입니다. 코드: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990#-*- coding: utf-8 -*- import numpy as npimport kerasfrom keras import layers, models, datasets, backendfrom keras.utils import np_utilsimport matplotlib.pyplot as plt clas..
CIFAR-10 학습 예제를 보다가 tf.nn.local_response_normalization란 함수를 찾았는데 뭐하는 놈인지 몰라서 검색하면서 정리한 글입니다. https://www.tensorflow.org/api_docs/python/tf/nn/local_response_normalization 공식 문서의 설명을 보면 tf.nn.local_response_normalization( input, depth_radius=5, bias=1, alpha=1, beta=0.5, name=None ) 이런 파라미터가 있고 이렇게 동작한다고 합니다. 이게 무슨 의미가 있나 싶은데 논문에 따르면 This sort of response normalization implements a form of latera..
쓰읍... 케라스 책은 오타도 많고 검수를 제대로 안한건지 뭔가 나사 빠진듯한 모습이라 첫인상이 별로 안좋습니다 ㅠㅠ... 간단한 인공 신경망으로 MNIST 이미지 분류를 학습하는 예제입니다. 코드: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970#-*- coding: utf-8 -*- import numpy as npfrom keras import layers, models, datasetsfrom keras.utils import np_utilsimport matplotlib.pyplot as plt def ANN_..
'코딩셰프의 3분 딥러닝 케라스맛'이란 책으로 케라스에 입문합니다. 텐서플로 책을 끝냈기 때문에 좀 수월하지 않을까 싶습니다. 라이브러리 자체도 고수준이고... 무엇보다 마음에 들었던건 케라스라는게 사실 거대한 레퍼라는 설계? 텐서플로 위에 케라스, MXNet 위에 케라스, CNTK 위에 케라스... ㅎㄷㄷ 대체 코드를 어떻게 짜면 이런게 되는거지. 첫 케라스 코드: 1234567891011121314151617181920import kerasimport numpy as np # 문제x = np.array([0, 1, 2, 3, 4])y = x * 2 + 1 # 신경망 생성model = keras.models.Sequential()model.add(keras.layers.Dense(1, input_sha..
※ 이 글은 '골빈해커의 3분 딥러닝 텐서플로맛'이라는 책을 보고 실습한걸 기록한 글입니다. 드디어 마지막 챕터네요. 이건 이해하느라 좀 힘들었습니다 ㅠㅠ 심지어 코드도 길어서 타이핑하느라 손가락 부러지는 줄. agent.py: model과 game을 import해서 최종 로직을 작성합니다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114..
사지방에서 텐서플로를 돌리기엔 뭐해서 어떻게든 다른 방법을 통해 실습할 수 있었습니다. 딱 두 달 걸렸네요. 정말 잘 샀다고 생각하는 책입니다. 전체적인 난이도는 다른 책에 비해서 쉽습니다. 애초에 이론적인 설명은 구현에 딱 필요한 수준으로만 알려주기 때문에 쉬울 수 밖에요. 책 소개에도 있지만 수식이라곤 y = Wx+b 뿐입니다. 그래서 이론적인 내용을 몰라도 코드를 돌려보면서 대충 흐름을 이해하기에 딱 좋습니다. 다만 저처럼 저수준적인 원리를 알아야 맘이 편안해지시는 분들은 코드 이해하고 작성하는 시간보다 검색하는 시간이 더 오래 걸리실겁니다. 마지막 챕터에서 DQN이 나오는데 DQN은 이론적인 내용을 배운적이 없고 검색해도 잘 안나와서 상당히 오래걸렸습니다. CNN, GAN 같은건 3일 정도면 됬는..
다른 사람들의 풀이들을 보면 가끔 fio라고 Fast IO의 약자일것 같은 네임스페이스 안에 빠르게 입력을 받고 출력할 수 있는 수제 라이브러리를 사용합니다. 저는 귀찮아서 그렇게 안하다가 오늘 단어 정렬 문제에서 입출력을 cin, cout에서 단순히 scanf, printf로 바꿨을 뿐인데 무려 20배의 속도차이가 나는걸 보고 참...
골빈해커 책의 마지막 챕터인 DQN을 보는데 비용 함수의 정의가 이해가 안되서 하루종일 사무실에서 코드랑 공식만 보고 있었네요... 공식은 cost = 평균 {보상 + max(targetQ(다음 상태)) - predictQ(현재 상태)}2 좀 생략됬지만 핵심적인 부분만 보면 이렇게 생겨먹었습니다. targetQ, predictQ는 상태를 받아서 그 상황에 할 수 있는 각 행동의 점수(가치=Q)를 출력하는 신경망입니다. predictQ가 학습이 이뤄지는 신경망이고 targetQ는 일정 주기로 predictQ와 같게 갱신되는, 그냥 고정된 녀석이라고 봐도 됩니다. 보상은 현재 상태에서 한 어떤 행동으로 인해 변경된 게임 상태에 대한 점수를 의미합니다. 제가 이해가 안됬던건 왜 targetQ에 다음 상태를 넣..