MBN Y 포럼 2017

마음이 복잡한 요즘 하루쯤 쉬고 오자는 목적으로 신청한 포럼이었습니다. 연구와는 무관한 내용이고 머리를 쥐어짜면서 듣지 않아도 되는 가벼운 포럼이죠.

예상보다 많은 사람들에 놀랐고, 그 중 아이들도 많다는것에 또 한번 놀랐습니다. 초롱초롱한 눈으로 집중하고 경청하고 해맑은 목소리로 질문하는 것을 보니 마음이 정화되는 느낌이었네요.

개개별 발표내용은 뉴스 기사나 방송 등으로 나올테고, 개인적으로 인상 깊었던 점은, 꿈에 대하여 이야기하는 부분이었습니다.

  • 내 꿈은 무엇인가?
  • 내가 지금 하고 있는 있는 내가 하고 싶어서 하는 일인가, 아니면 일에 내 꿈을 맞춰가는 것인가?
  • 내가 하고 있는 일이 적어도 다른 사람에게 도움을 줄 수 있는 일인가?

즐겁게, 하지만 신중하게 제 자신을 돌아볼 수 있는 시간이었습니다.

홍박사의 과일상자 (과학 일단 상상하자)

x9788998529130

교보문고에서 책을 고르다가 발견한 색. SNS (페이스북)에 올렸던 이야기들을 조합하여 만든 책들인것 같은데, 각종 과학 관련한 재미있는 에피소드들이 짤막하게 여러개가 묶여있음. 읽는데 시간을 별로 들이지 않아도 되고, 머리 아픈 이야기도 없어서 가볍게 읽음.

Install TensorFlow with GPU support on Mac OS X

NVIDIA 개발자 사이트에서 CUDA Toolkit (https://developer.nvidia.com/cuda-downloads)과 cuDNN (https://developer.nvidia.com/cudnn)을 다운로드한다. Toolkit은 바로 받을수 있지만, cuDNN은 회원가입 후 다운로드 가능하다.

다운로드한 dmg 파일을 열어서 설치하면 끝. cuDNN은 터미널에서 다음과 같이 입력하여 설치한다.

$ cd /usr/local
$ tar zxf path_to/cudnn-8.0-osx-x64-v5.1.tgz

path_to는 cudnn 파일의 위치에 따라 입력해주면 끝.

 

다음으로 Tensorflow 공식 홈페이지에서 나온대로 설치를 진행한다. 나 같은 경우엔 homebrew를 이용해서 python을 설치했고, pip도 설치된 상태임. 따라서 pip로 설치할 경우 /usr/local/lib 아래 폴더에 모든 패키지들이 설치됨.

$ pip install -U tensorflow-gpu

이 한줄로 설치는 모두 끝.

 

python에서 import 할때 Segmentation Fault 11 에러가 발행하는데, 이는 cuda 라이브러리를 찾지 못해서 발생하는 것이라고 tensorflow github 이슈게시판에 있음. 해결 방법은

$ cd /usr/local/cuda/lib
$ ln -s libcuda.dylib libcuda.1.dylib

와 같이 하면 됨. 이제 다시 import 해보면 정상적으로 되는걸 확인할 수 있고, session를 생성하면 다음과 같이 gpu도 제대로 인식하는걸 볼수 있다.

>>> import tensorflow as tf
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcublas.8.0.dylib locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcudnn.5.dylib locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcufft.8.0.dylib locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcuda.1.dylib locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcurand.8.0.dylib locally

>>> sess = tf.Session()
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:874] OS X does not support NUMA - returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties: 
name: GeForce GT 650M
major: 3 minor: 0 memoryClockRate (GHz) 0.9
pciBusID 0000:01:00.0
Total memory: 1023.69MiB
Free memory: 16.49MiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 650M, pci bus id: 0000:01:00.0)

일단 설치는 완료.

숨결이 바람 될 때

xxlarge

2017년 처음으로 읽은 책입니다. 전체 양이 얼마되지 않아 금방 읽게 되었네요. 능력을 인정받고 출중한 실력의 신경외사 의사가 폐암으로 사망하기까지의 글로, 레지턴트 시절에 본인이 접했던 환자들의 얘기와 병마와 싸우는 과정들이 잘 묘사되어 있습니다.

이런 내용의 글을 읽을 때마다 느끼는 것이지만, 건강은 건강할 때 지켜야 한다는…

[Electron] Hello World

개발 환경을 구축하였으니, 이제 Hello World 프로그램을 작성해보고, 대충 어떻게 돌아가는지 파악해보도록 하겠습니다. electron-quick-start를 사용하면 될듯 합니다.

터미널을 여시고, 임의의 디렉토리를 만듭니다. 그리고, 다음과 같이 입력합니다 .

$ git clone https://github.com/electron/electron-quick-start
$ cd electron-quick-start
$ npm install
$ npm start

일단 개발환경이 제대로 설치된 상태고, 별다른 문제가 없다면 떡하니 창하나가 뜰겁니다. Hello World 프로그램이 완성되었습니다.

Screen Shot 2017-01-25 at 5.23.38 PM

우분투 환경에서도 역시 마찬가지로 같은 모양을 가진 창이 뜹니다. 아마 윈도우에서도 마찬가지일겁니다. 한번의 개발로 모든 운영체제에서 실행이 되는 앱을 개발하였습니다 .^^

이제 electron-quick-start 프로그래을 좀더 살펴보도록 하겠습니다.

문서파일을 제외하고, 총 4개의 파일로 이루어져있습니다.

index.html
main.js
package.json
renderer.js

package.json 파일은 이 프로그램을 실행하는데 필요한 패키지들의 리스트를 보여줍니다. 아까 실행하기 위해 입력했던 npm install 명령어가 이 파일을 참조하여 필요한 패키지들을 자동으로 설치하여 줍니다.

main.js가 파일 이름 그대로 메인 파일입니다. node.js 언어로 되어 있으며, 현재는 그다지 복잡한 상태가 아니므로 내용을 잠깐 보면 윈도우를 생성하고, 같은 디렉토리에 있는 index.html 파일을 불러오는 기능을 수행합니다.

render.js는 현재는 아무런 내용이 들어가 있지 않습니다. index.html 파일을 렌더링하기 위해 필요하며, 추후에 좀더 많은 코드들이 입력될 예정입니다.

index.html은 윈도우 내부에 보여질 내용을 나타냅니다. HTML로 구성되어 있죠. 보시면 웹페이지를 만들때처럼 html – head -body 등의 내용을 보실수 있습니다.

지금은 없지만, 내부의 디자인은 style.css 파일을 이용하여 구성할 수 있습니다.


 

참 쉽죠? 이제 좀더 복잡한 프로그램을 만들어보도록 하겠습니다.