프로그래밍 84

Ubuntu Tensorflow-gpu 설치

Tensorflow-gpu 설치 NVIDIA Cuda, Tensorflow의 버전에 따라 호환 이슈가 생길 수 있습니다. 그러므로, tensorflow-gpu 설치 가이드에 명시한 버전들로 Cuda를 설치하는것을 권장합니다. 세팅한 장비는 XPS 랩탑에서 설치했으며 OS, GPU는 다음과 같습니다. OS : ubnutu 18.04 GPU : NVIDIA 960M Install CUDA with apt Ubuntu를 사용하시는 분들이라면, tensorflow gpu install guide에서 "Install CUDA with apt" 섹션을 참고해서 설치하시는게 가장 빠릅니다. 가이드를 따라가면서, 문제가 생기는 부분들은 구글링을 통해서 고치실수 있을겁니다. 트러블 슈팅 링크 아래 링크는 설치하면서 li..

프로그래밍/AI 2019.05.05

Vanilla-Policy 코드 분석

Vanilla-Policy-Cart-Pole 플레이한 history 리스트를 가지고 역순으로 순회하면서 discount factor를 적용하는 부분이 재미있었습니다. def discount_rewards(r): """ take 1D float array of rewards and compute discounted reward """ discounted_r = np.zeros_like(r) running_add = 0 for t in reversed(xrange(0, r.size)): running_add = running_add * gamma + r[t] discounted_r[t] = running_add return discounted_r python에 익숙하지 않아, 이 부분도 갸우뚱 했는데요. s..

프로그래밍/AI 2019.04.29

Q-Network 코드 분석

Q-Network 분석 Loss를 targetQ와 PredictQ의 차이값으로 설정하여 Weight 값들이 TargetQ에 형태로 접근하는 것이 인상적이었습니다. # loss = (targetQ - PredictQ)^2 loss = tf.reduce_sum(tf.square(nextQ - Qout)) np.identity(16)[s:s+1] 아래 코드에서 feed_dict에 input state를 넣어주는 코드가 어떤 의미인지, 왜 이렇게 작성했는지 이해하지 못했었습니다. # Feed Forward inputs1 = tf.placeholder(shape=[1, 16], dtype=tf.float32) W = tf.Variable(tf.random_uniform([16,4], 0, 0.01)) Qout =..

프로그래밍/AI 2019.04.28

Open AI Gym 시작하기

Open AI Gym 시작하기 Gym은 강화학습 알고리즘을 개발, 비교하기 위한 개발 도구이며, Tensorflow나 Theano 같은 수치 계산 라이브러리와도 호환됩니다. 설치 pip 명령어를 통해 gym을 설치합니다.(python 3.5+) pip install gym 환경들 아래는 최소 예제 코드입니다. 이 코드는 CarPole-v0 환경을 1000번의 스텝을 반복하며 렌더링합니다. 아래 코드를 실행하게 되면 고전적인 cart-pole problem 윈도우 창을 볼 수 있습니다. import gym env = gym.make('CartPole-v0') env.reset() for _ in range(1000): env.render() env.step(env.action_space.sample()) ..

프로그래밍/AI 2019.04.13

Unreal Engine 4 Network Features

Unreal Engine 4 Network Features언리얼 엔진에서 네트워크 기능 예제를 제공하고 있습니다.Contents Example 프로젝트를 받아서 Map 하위 폴더에 NetworkFeature를 열면 살펴 볼 수 있습니다.오늘은 언리얼 엔진 네트워크 기능에 대해 간단하게 핵심만 정리하려합니다. 액터란?우선, UE4에서 액터란 게임 씬에 배치할수 있는 모든 오브젝트를 말합니다.(유니티를 아시는 분들이라면 게임오브젝트와 비슷한 개념으로 보시면 좋겠습니다.)액터에 게임 매니져 컴포넌트를 붙여서 게임의 시작/종료 조건을 체크하는 매니저로 만들수도 있고,액터에 이동/조작 관련 컴포넌트를 붙여서 플레이어로 만들수도 있습니다.UE4에서는 액터를 상속받아서 특정한 속성을 가진 개념들을 구현하고 있는데요,..