[Tensorflow 2.0] Subclassing 구현

[Tensorflow 2.0] Subclassing 구현

  • TensorFlow 2.0으로 베우는 딥러닝 입문 강의를 들으며 공부한 내용입니다.

복습 겸 입문 강의를 쭉 훑으면서 기초를 다시 다져보려 한다. Subclassing 코딩스타일을 익혀보자.

강의에 사용된 예제 코드는 이전에 다뤄본 MNIST 숫자분류 코드로 깃헙 주소는 아래와 같다. -> 여기!

자세히 보기
SK 코딩테스트 후기 - String다루기

SK 코딩테스트 후기 - String다루기

SK 계열사 중 한곳에 지원, 지난 토요일 코딩테스트를 치뤘다. IDE는 후기에서 말한대로 Codility를 사용했다.

문제는 총 3문제였는데 첫 2개를 30분동안 다 풀고 마지막 1개를 결국 못풀었다… 아쉽다.. 느낌상 셋다 풀고 3번에서 효율성이 떨어지는 정도여야 통과일 것 같아서 마음을 비우고 있는 중이다.

어쨌든 이번이 첫 지원이니 너무 마음쓰지 않으련다. 다음 시험때 더 잘하면 되지. 그럼 의미에서 문제를 복기하고 헤맨 원인을 찾아보려 한다.

자세히 보기
코딩테스트 준비하기 - (4) Prefix Sums

코딩테스트 준비하기 - (4) Prefix Sums

prefix sum은 부분합 배열을 의미한다. 개념은 단순하다

  1. 다음과 같은 배열 A가 있다.

    A = [ 1, 4, 6, 3, 7, 9 ]

  2. 이때 배열 A의 prefix sum, 즉 부분합 배열 K는 아래와 같다

K = [ 1, 5, 11, 14, 21, 30 ]

상당히 간단한 개념이다. 고등학교 수학시간에 배웠던 것 같은데. 여튼 prefix sum의 장점은 구간의 부분합을 쉽게 구할 수 있다는 점이다.

즉, A[3] + A[4] + A[5] = K[5] - K[2]이다.

자세히 보기
코딩테스트 준비하기 - (3) Counting Elements

코딩테스트 준비하기 - (3) Counting Elements

Codility사이트는 해당 Lessons관련 이론 pdf파일도 같이 제공해준다. pdf 파일이 굉장히 대학시절 알고리즘 교재에서 본것처럼 생겼다.

여튼 생짜로 머리에서 아이디어를 꺼내는 것 보다 이 관련 자료를 읽고 힌트를 얻어 문제를 푸는게 훨씬 유용한 것 같다!!

Counting Elements.pdf

  • 그룹 A와 B가 있다. 두 그룹에서 하나의 페어를 찾아 바꿈으로서 각 그룹의 총합이 같도록 만들수 있는지를 판별하려면?
  • 각 그룹의 총합의 차를 구한다. 그룹1의 총합이 10, 그룹2의 총합이 13이라고 해보자. 이때
자세히 보기
코딩테스트 준비하기 - (2) Time complexity
코딩테스트 준비하기 - (1) Arrays

코딩테스트 준비하기 - (1) Arrays

코딩테스트를 준비할 일이 생겼다. Codility를 통해 공부하자. 어제 아주 기본적인 문제를 풀었는데 정확도가 80%밖에 되지 않았다 제길ㅠ 한창 코테 준비할땐 그래도 나쁘지 않았던 것 같은데… 계속하지 않으면 금방 까먹는 듯 하다.

난이도별로 여러개의 예제가 엄선되어 있어서 좋다. 백준의 경우에는 너무 많은 예제가 중구난방으로 있어서 뭘 풀어야 할지 감을 잡기 어려운데 그런면에서 훨씬 잘되어 있는 것 같다. 알고리즘에는 역시 C지! 익숙한 C언어로 풀어보자.

자세히 보기
ES6 문법정리

ES6 문법정리

노드 공부하면서 ES6문법도 같이 공부하련다.

노드6부터 ES6문법을 사용할 수 있다. 인터넷 익스플로러같은 낡은 브라우저에서도 사용할 수 있도록 문법을 변환해주는 babel같은 도구도 있다!!

자세히 보기
노드 시작하기

노드 시작하기

노드 서버를 만들 일이 생겼습니다. 700페이지짜리 두껍고 무서운 책을 한권 샀습니다. 이름도 무려 Node.js 교과서.

그래도 뷰 공부할때보다는 확실히 덜 막막하고, 서버는 처음 개발해보는거라 약간 설레는 마음이 있습니다.

구입한 책은 Node.js 교과서 - 길벗출판사 .

노드란?

Node.js는 Chrome V8 Javascript엔진으로 빌드된 Javascript 런타임이다.

서버로서의 노드

  • 노드의 가장 큰 특징 : 1) 싱글스레드 2) 논-블로킹 모델
  • 노드를 서버로 사용할때의 장단점
    • 노드는 IO 처리를 잘한다(논블로킹 방식으로 처리).
    • 하지만 노드는 CPU부하가 큰 작업에는 적합하지 않다. >> 작성한 코드 전체가 스레드 하나에서 처리되기 때문

따라서 노드는 개수는 많지만 크기는 작은 데이터를 실시간으로 주고받는 데에 적합하다.

+) 노드에서 멀티스레드 사용이 불가능한건 아닌듯. 노드12에서 안정화된 워커스레드 기능으로 멀티스레딩 작업 가능하다고 한다.

+) 당연히 그래도 그냥 C++, Ruby, Go에 비해선 느리다.

자세히 보기
Tensorflow 개발자 자격증 준비하기(6)
Tensorflow 개발자 자격증 준비하기(5)