본문 바로가기

연구

(7)
[강화학습] tensorflow2로 ddpg dqn에 이어 tf2로 ddpg를 작성해봤다. tf1이나 keras를 히용해서 ddpg를 작성했을 때 와 달리 tf2의 autograph 덕에 매우 편리했다. 특히 actor를 업데이트하는 부분에서 chain rule을 이용해서 업데이트 하는 부분이 코드로 먼가 깔끔하게 짤 수 있었다. ddpg 자체가 거의 dqn이 사용한 기법을(target network, replaybuffer) 활용했기 때문에 actor-critic만 잘 구현하면 쉽게 구현할 수 있다. 1. OUNoise ddpg 에서는 exploration을 위해서 OU noise를 사용한다. class OUNoise: def __init__(self, action_dimension, mu=0, theta=0.15, sigma=0.2): self..
[강화학습] tensorflow 2로 DQN 전에 tf1으로 dqn을 작성했다. tf2에서 제공하는 Eager execution + gradienttape 연습할겸 다시 짜봤다. env는 간단하게 cartpole 했다. 코드를 보자 1. replay buffer class ReplayBuffer: def __init__(self, buffer_size): self.buffer_size = buffer_size self.buffer = deque(maxlen=self.buffer_size) def sample(self, batch_size): size = batch_size if len(self.buffer) > batch_size else len(self.buffer) return random.sample(self.buffer, size) def ..
HEVC Tile-based Adaptation mp4box로 HEVC Tile-based Adaptation을 진행해 보았다. 순서 1. mp4 파일을 yuv로 바꾼다. (kvazaar hevc encoder는 yuv 입력만 지원 한다.) 2. yuv 파일을 hvc로 인코딩 한다. - kvazaar 사용, 타일링 3. hvc 파일을 mp4로 패키징 해준다, - mp4box 사용 4. mp4 파일을 dash화 한다. - mp4box 사용 코드는 파이썬으로 작성하였다. - tools에는 진행에 필요한 kvazaar, ffmpeg, mp4box, mp4client가 있다 - config에는 영상 위치, 영상 fps, 사용할 소프트웨어의의 위치를 설정했다. - script에는 인코딩 자동화를 위한 간단한 스크립트를 작성했다. 1. mp4 -> yuv s =..
[Colab] Colab 빠르게 사용해보기 intro colab을 그냥 구글에서 gpu 공짜로 빌려준다더라~ 이정도만 알고 있어서.. 위급한 현재상황 선택지가 없었다. 서버 GPU부족 및 동시 실험진행을 위해서 Colab을 아주 간단하게 사용해 봤다. 실제로 주피터노트북도 사용해보지 않아서 주피터 노트북에서 파이썬 스크립트를 실행 시키기만 했다.. 이 방법의 난이도는 최하이다. 목차 1. colab 시작하기 2. google drive 마운트하기 3. 내 스크립트 실행하기 1. colab 시작하기 2. google drive 마운트하기 파일에 데이터셋을 직접 다운로드 한다던가 직접 업로드 할 수도 있지만, 세션이 종료되면 데이터셋을 또 다시 업로드 해야하는 번거로움이 있으니깐 google drive에 내 데이터셋을 올려서 마운트하자. 3. 내 스..
[cs294-112] 1.Supervised Learning of Behaviors ** CS294-112 강의 정리 Lecture 1. Definition sequential decision problems 2. Imitation learning: supervised learning for decision making a. direct imitation work? b. how can we make it work more often? 3. Case studies of recent work in (deep) imitation learning 4. What is missing from imitation learning Terminology & notation state sufficient kind of summary of what's going on in the world that you ..
[webRTC] 웹RTC 예제로 화상 채팅 구현하기. 1. webRTC RTC는 Real-Time Communications의 약자이다. 웹을 통해 웹어플리케이션이 비디오, 오디오 스트림 뿐만아니라 데이터를 중간의 서버가 없 이 직접 주고 받게할 수 있는 것이 목적이다. webRTC의 장점은 브라우저 사이에 P2P로 연결되어 어떤 플러그인이나 써드파티 소프트웨어가 필요 없다. --> 스카이프 같은 통화 기능을 웹 에서 바로 사용가능하다! 2. 튜토리얼 채팅 구현하기 우선 나는 websocket과 nodejs 서버를 이용해서 다른 브라우저에 있는 2명의 client가 서로 채팅하기로 요청,응답해서 화상채팅하는 시나리오를 이용해서 구현하였다. 각각의 서버와 클라이언트는 다음과 같은 순서의 구현이 필요하다, 클라이언트 사이드 1. 나의 비디오 스트림 가져오기 2..
[ffmpeg] mp4파일로 mpd 만들기 ffmpeg을 자주 쓰지 않다보니 매 번 할때마다 검색하는게 보통일이 아니다.. mp4파일을 이용해서 다양한 화질을 가진 mpd파일을 만들어보자! 기본적인 순서는 이렇다. 1. mp4 파일에서 오디오 트랙 꺼내기 2. mp4파일을 다양한 화질로 인코딩하기 3. 다양한 화질의 mp4(꼭 mp4가 아니어도 된다.)를 mpd로 만들어준다. 나는 mp4 --> webM(vp9이용) --> mpd 방법을 사용했다. 우선 ffmpeg이 필요하다. https://www.ffmpeg.org/download.html 위의 사이트에서 운영체제에 맞는 빌드된 ffmpeg을 다운 받자! (사용할 때에는 cmd 창에서 ffmpeg 폴더의 bin에 들어가서 적당한 스크립트를 써주면 된다.) *** 비디오의 메타데이터 확인하는방법..