Java 기술면접을 대비해서 간단한 질문과 답을 정리했습니다. 질문 답의 출처는 여기입니다. 링크의 내용을 번역하면서 공부한 내용을 추가했습니다. 잘못된 내용이 있을 경우에 말씀 부탁드리겠습니다. 1. Java는 무엇인가요? : Java는 컴퓨터 프로그래밍 언어로서, 클래스와 객체 지향적인 언어입니다. 객체 지향 언어의 이점은 다음과 같습니다. 코드의 수정, 유지, 정비가 편리하도록 모듈화된 개발 코드의 재 사용성 증가 코드의 유연성, 신뢰성 증가 코드에 대한 이해 증가 2. OOP (Object Oriented Programming)은 무엇인가요? : OOP는 다음의 특징을 포함합니다. 추상화 abstraction 캡슐화 Encapsulation 다형성 상속 미리 정의된 타입은 객체여야만 한다. 사용자..
python 기술면접에 대비해서 자주 나오는 질문과 답을 정리하려고 합니다. 질문의 출처는 여기이며, 이 글의 내용을 공부하면서 번역했습니다. 번역하면서 추가로 설명을 넣거나 표현을 변경하였는데 잘못된 점 있다면 말씀 부탁드리겠습니다. 6. 버그를 찾거나 정적 분석을 할수 있는 어플리케이션이 있나요? :pychecker, 정적 분석에 사용. pylint, 파이썬 모듈들이 표준 코딩을 만족하는지 체크. 7. decorator는 언제 사용되나요? : 함수를 빠르게 변경할 때 사용 가능합니다. 8.리스트와 튜플의 주된 차이점은 무엇인가요? : 리스트는 mutable하고 튜플은 immutable 합니다. 9. 파이썬에서 메모리는 어떻게 관리되나요? : 파이썬에서는 개별적인 힙을 사용해서 메모리를 유지합니다. 따..
최근 Deep learning의 상용화가 많이 진행되면서 핸드폰과 같은 하드웨어들에서 사용하기 위해 "경량화"와 관련된 연구들이 많이 되고 있습니다. 그런 추세에 따라서 경량화에 대한 내용들을 깊게는 아니더라도 흐름에 대해서 알아보고자 정리하는 글입니다. 경량 딥러닝 기술은 크게 두가지로 나눠진다고 할 수 있습니다. 1. 알고리즘 자체를 적은 연산과 효율적인 구조로 설계하여, 기존 모델 대비 효율을 극대화 하기 위한 "경량 알고리즘 연구" 2. 만들어진 모델의 파라미터들을 줄이는 모델 압축(model compression)과 같은 기법이 적용된 "알고리즘 경량화"기술 1. 경량 딥러닝 알고리즘 경량 알고리즘 연구는 크게 세가지로 나눠질수 있습니다. 모델구조 변경, 합성곱 필터의 변경, 자동 모델 탐색 입..
노트북을 새로 구매하면서 세팅하는 것을 정리하려고 적는 글입니다. 평소에 mac 혹은 ubuntu에서만 딥러닝 세팅을 했었는데 윈도우는 처음이라 정리해보려고 합니다. 1. 그래픽 드라이버, 파이썬 설치 기본 단계입니다. nvidia 사이트에 들어가서 적절한 그래픽 드라이버를 다운받습니다. 저는 Geforce experience를 설치해서 드라이버를 설치했습니다. 파이썬은 3.6버전을 설치했습니다. 2. Microsoft Visual C++ 2015 설치하기 기존에 visual studio를 설치하셨다면 해당 단계는 건너가셔도 될 듯합니다. tensorflow.org의 pip설치 내용을 보면 윈도우에서는 Microsoft Visual C++ 2015를 설치해야 한다고 나와 있습니다. 해당 링크에 접속해서 ..
keras에서 모델을 설계하고 학습(fitting)할 때 사용하는 메소드가 fit과 fit_generator가 있습니다. 두개가 다른 것은 아나 어떤 차이인지 정확히 몰라 구글에 검색을 해보니 이미 쉽게 정리해둔 글이 있었습니다. 간단하게 정리하자면 fit()은 scikit-learn의 fit메소드와 유사하다고 합니다. 저희가 학습에 사용할 데이터 x와 y 전체를 한번에 입력으로 사용한다고 합니다. 그만큼 memory를 많이 사용하겠지요. fit_generator()는 파이썬의 generator를 사용한 것으로 대용량의 데이터를 효율적으로 학습하기 위한 것이라고 합니다. 파이썬의 제네레이터를 통해 형성된 데이터들을 batch-by-batch로 학습하는 방법입니다. 이 메소드는 CPU를 parallel하게..