본문 바로가기

전체 글

(171)
Visual Studio Code setup for C++ in ubuntu 18.04 (use not cmake) 이번 시간에는 Visual Studio Code 에 C++ 환경을 셋업해보겠습니다. 설치한 컴퓨터틑 우분투 18.04 입니다. 우분투 버전 체크는 터미널에서 $ lsb_release -a 커맨드를 쳐주면 확인할 수 있습니다. 저의 경우에는 gcc 가 설치되어 있어서 별도로 설치는 하지 않습니다. gcc 설치가 안되어있다면, $ sudo apt install build-essential 으로 해주시면 됩니다. vs code 는 설치되어 있다고 생각하겠습니다. 셋업 과정은 goodgodgd.github.io/ian-flow/archivers/vscode-tutorial Visual Studio Code setup for C++ « IanFlow Visual Studio Code 개발환경 세팅 (C++) 개인..
python if not , isinstnce 이번 시간에서는 파이썬 if not 에 대해 알아보려고 합니다. 조건문의 구조는 보통 아래처럼 일반화 됩니다. if 조건문: 실행문 elif 조건문: 실행문 else: 실행문 여기서 조금 디테일하게 이해할 필요가 있습니다. if True: print('참') # True 는 참 else: print('거짓') if False: print('참') else: print('거짓') # False 는 거짓 if None: print('참') else: print('거짓') # None 은 거짓 (None 은 False 로 취급됨을 위 코드에서 확인해주세요) ----------------------------- if 와 not 조건문 을 구분해서 보셔야 합니다. 저도 처음에 같이 결합해서 보다보니 이 부분이 좀..
python 범위 규칙, 할당, assignment, UnboundLocalError: local variable referenced before assignment 파이썬 namespace 를 공부하다 보면, unboundlocalerror 때문에 혼란이 오게 되는 경우가 있다. 이 포스팅은 그러한 사람들을 위한 포스팅이다. 먼저, 파이썬 네임스페이스에 대한 기본적인 이미지는 아래와 같다. 보통 파이썬에서 네임스페이스는 3가지가 있으며, 지역 네임스페이스, 전역 네임스이스, 빌트인 네임스페이스 가 있고, 위와 같은 관계이다. 그리고 아래 코드같은 예제를 보면서 알게 된다. # case1 z = 100 def func_3(x,y): print(locals()) a = x + y + z print("func_1 z", z, a) func_3(100,100) 아하! "전역 변수를 참조하여 지역 네임스페이스에 없을 경우, 전역 네임스페이스를 참조해서 처리하는구나!" 그러다..
python 3 부터는 f-string 만 기억하자. (문자열 포매팅) 파이썬 문자열 표기법을 보면 형식 문자열이라고 해서 % 기호의 좌측에 값이 들어갈 자리를 만들고, 우측에 값을 튜플형태로 넣는다. a = 0b1011011 b = 0xc5f print('이진수 : %d, 십육진수: %d' % (a,b)) 이러한 %-formatting 방식이 있고, 또 str.format()메서드 방식이 있는데 주로 python 2 에서 사용해왔다고 한다. 이러한 표기법에는 몇 가지 문제가 있다. 1번째 문제점은 형식화 식에서 오른쪽에 있는 tuple 내 데이터 값의 순서를 바꾸거나 값의 타입을 바꾸면 타입 변호나이 불가능하므로 오류가 발생할 수 있다. 2번째 문제점은 '가독성'이다. 위 코드에서 값을 변경해야 할 경우 tuple의 길이가 길어져서 가독성이 떨어진다. 딕셔너리에 있는 키는..
우아한 사이파이 리뷰 사이파이는 데이터 사이언스를 하는 사람이라면 꼭 알아야하는 라이브러리 중 하나입니다. 보통 넘파이를 많이 공부하지만 scipy도 수학적인 연산을 다루는 라이브러리이기에 꼭 알아야합니다. 딥러닝 관련 수학 공부를 하면서 scipy로 해당 부분에 대한 계산이나 연산 문제를 공부하는 것도 굉장히 좋습니다. 국내에 사이파이를 다룬 책은 많지 않습니다. 이 책에서는 딥러닝의 각 분야에서 알아야하는 이론적인 부분들을 사이파이로 잘 풀어놓았습니다. 예를 들어, 4장에서는 푸리에 변환을 다루는데 '음성' 쪽을 공부하는 분이라면 푸리에 변환을 기본적으로 공부하셨을 겁니다. 5장에서 다루는 희소행렬과 혼동행렬은 딥러닝을 위해서 기본적으로 알아야하는 부분들입니다. 추천 시스템이나 문서 간 유사도를 구하는 이론 및 예제를 해..
GANs IN ACTION 서평 GAN은 딥러닝을 공부하는 사람이라면 자연스럽게 배워야만 하는 영역입니다. 적대적 신경망이라고도 하는 이 모델은 굉장히 특별합니다. GAN(Generative Adversarial Network)은 비지도 학습에 사용되는 인공지능 알고리즘이며, 제로섬 게임 틀 안에서 서로 경쟁하는 두 개의 신경 네트워크 시스템에 의해 구현된다. 이러한 GAN을 본떠서 만든 최신 NLP 모델은 electra 가 있는데, 자연어처리 쪽에서는 bert, gpt 랑 같이 올해 많은 관심을 받은 모델 중 하나입니다. 여하튼 GAN은 이상적인 모델이라고 할 수 있는데 자세한 건 책을 통해서 이해하면 좋습니다. 우선, 이 책은 박해선 역자님이 쓰신 책인만큼 번역에 이상하게 느껴지거나 불편한 점은 없습니다. 주의할 사항은 "GAN i..
제이펍 '파이토치 첫걸음' 리뷰 오늘 리뷰할 '파이토치 첫걸음'은 작년, 자연어처리 국비 지원과정을 들으면서 당시 받은 책 중 하나이다. 현재 업무를 하면서는 tensorflow2 를 사용 중인데, 논문을 보고 오픈소스를 찾다보면 자연스레 pytorch에 대한 필요성을 느끼게 되었다. 여러 좋은 자료들이 있지만, 책을 통해 학습하는 걸 선호하기에 우선, 갖고 있는 pytorch 책을 먼저 학습해보려 한다. 최근, pytorch 에 대한 책들도 서서히 국내에 출간되는 것 같다. 이 책은 작년 6월쯤? 에 나온 책으로 보인다. 책은 200페이지정도 되는 정말 입문서 수준의 책이다. 이 책은 리눅스에 pytorch 를 파이썬 가상환경에 설치해서 세팅을 하도록 안내하는데, 혹시라도 윈도우에만 익숙한 사람이라면 리눅스는 조금 공부하고 쓰길 권하..
'이것이 C#이다' 리뷰 이 서평은 한빛미디어로부터 무상으로 제공받은 도서를 읽고 작성되었습니다. 시작합니다. 덧붙여서, 이번 서적은 자바와 c# 을 주로 사용하며 개발자로 5년 이상 일한 제 형이 대신 해주었습니다 :) 평소 C#을 사용하고 있는 개발자지만 정식으로 책으로 익힌 적은 없습니다. 자바를 알고 있는 상태에서 인터넷을 통해 간단히 배우게 되었으며, C# 관련 책을 보게 된 것은 이번이 처음인 것 같습니다. 기본서로써 기초적인 내용이 충실하고 C#을 한 번도 접해보지 못한 독자를 대상으로 하는 책으로써 편집이나 내용 전개 방식이 좋습니다. 어떻게 보면 다른 C# 기본서와 별다를 게 없다고 생각할 수도 있으나 중간중간의 '여기서 잠깐' 부분의 내용이나 퀴즈 등은 입문자에게도 꽤 도움이 될 내용이고, 숙련자에게도 한 번 ..
[서평] 사물인터넷을 품은 라즈베리 파이 개정판 이번 시간에는 '사물인터넷을 품은 라즈베리 파이 개정판'을 서평 해보겠습니다. 이 책의 개정판은 지난 달에 나왔습니다. 개정판 전의 버전은 2016년도에 나온 것으로 알고 있습니다. 책이 굉장히 두꺼운데, 그 이유는 과하게 친절한 면(?)이 있기 때문입니다. 우선, 라즈베리파이 장비가 필요합니다. 이 책의 1장에서는 장비에 대한 설명과 관련한 공식 유통 사이트가 하나 언급됩니다. 아래 사이트이며 꼭 저 사이트를 통해서만 사야하는 건 아닙니다. 인터넷쇼핑으로 가성비 좋은 제품과 저렴하게 파는 사이트를 찾아서 구매하면 될 것 같습니다. bit.ly/3mb93xk 전자부품쇼핑몰 아이씨뱅큐 - 전자부품, 오픈소스 하드웨어의 모든 것 국내최대 전자부품쇼핑몰로 아두이노, 마이크로비트, 라즈베리파이, LCD부품, 코..
[도서리뷰] 캐드의 정석 ZWCAD (feat. 입문서, 기본서) 오늘 다룰 도서는 CAD 프로그램인 ZWCAD 에 대한 기본서라 할 수 있는 '캐드의 정석 ZWCAD ' 입니다. 우선 해당 소프트웨어를 만든 회사인 ZWCAD(지더블유캐드)는 전 세계 90만 사용자를 확보한 CAD 솔루션입니다. ZWSOFT는 세계적으로 유명한 CAD/CAM 솔루션을 개발, 제공하는 회사로서 건설/건축(AEC), 기계/제조(MFG), Mobile CAD 산업을 위한 솔루션 개발을 하는 회사입니다. ZWCAD 에서 최근, ZWCAD 2020을 출시하였고, ZWCAD 2020의 새로운 기능과 업그레이드 내용이 담긴 ‘캐드의 정석 ZWCAD’ 이 바로 지금부터 제가 리뷰할 도서입니다. 항상 이런 소프트웨어 서적들은 얼마나 최신인지가 중요하다고 생각하는데 소프트웨어 버전도 올해 버전이며 이에 ..
'핸즈온 비지도학습' 리뷰 [ 한빛미디어에서 주관하는 '나는 리뷰어다' 활동에서 제공받은 책을 통해 작성된 서평입니다 ] 머신러닝과 딥러닝 책을 좀 봤다면, 비지도학습을 다루는 챕터를 분명히 보았을 거라고 생각한다. 보통 국내 책마다 2,3챕터정도는 비지도학습의 기법에 대한 설명과 핸즈온으로 구성된 게 많은 걸로 안다. 이 책은 철저하게 비지도학습에 초점을 맞춘다. 사용하는 라이브러리는 사이킷런, 텐서플로(1.xx), 케라스을 이용한다. 이 책은 머신러닝 입문자들이 보기는 부적합하다. 다른 책이나 강의로 조금 공부를 한 사람이 보기에 적합하다고 본다. 책의 초반이나 챕터마다 초반에 기본적인 개념에 대한 정리를 해주지만 몇 장 되지 않는다. 그러니, 다른 머신러닝 책을 1,2권 정도 공부해본 사람이 보길 권한다. 물론 여기에는 케라..
리눅스 파일 링크 - 하드 링크, 심벌릭 링크 파일 링크는 기존 파일에 새 이름을 붙이는 것을 말합니다. 복잡한 디렉터리 계층 구조에서는 파일명이 복잡하면, 간단한 다른 이름을 붙여서 사용하면 굉장히 편리합니다. 이러한 파일 링크는 하드링크와 심벌릭 링크 2가지로 나뉩니다. 하드링크 - 기존 파일에 새로운 파일명을 추가로 생성한 것 심벌릭 링크 - 원본 파일을 가리키는 새 파일을 만드는 것. (like 윈도우에서의 바로가기 기능) 먼저, 리눅스의 파일 구성을 살펴보겠습니다. 리눅스의 파일 = '파일명(=디렉터리)' + inode 블록 + 데이터 블록 '파일명' 우리가 눈으로 GUI 상에서 보게 되는 아이콘과 같은 개체라고 보시면 됩니다. 위 구성표를 보면 '파일명'은 i-node 블록 공간을 가리키는데요. 좀 더 자세히 설명하자면, 파일명은 사용자가..