처음 처음 | 이전 이전 | 11 | 12 | 13 |다음 다음 | 마지막 마지막
코딩셰프의 3분 딥러닝, 케라스맛 - Keras 코드로 맛보는 ANN, DNN, CNN, RNN, AE, GAN, UNET 3분 딥러닝 시리즈
김성진 지음 / 한빛미디어 / 2018년 1월
평점 :
구판절판


구성

ch.0 제목 그대로 프롤로그로 가볍게 읽고 넘어가면 됨

ch.1 플랫폼 별 설치와 가장 간단한 예제 설명.

ch.2 이후로는 케라스를 사용해 다양한 기법들을 실제로 돌려보는 예제와 설명


장점

설치에 문제가 없다면 제공하는 git repository(https://github.com/jskDr/keraspp)를 통해 책의 모든 예제를 바로 바로 실행하면서 읽을 수 있다. 이쪽에 대해 거의 아무런 지식이 없었지만, 따라가는 데 아무 문제가 없었다. 예제마저도 aws s3에서 자동으로 받아 편리하게 실행할 수 있게 해 놓았다는 점에서 저자가 많은 신경을 썼다는 생각이 든다.


단점

기본 지식이 없으면 실행까지만 하고 자신만의 응용을 하기가 쉽지 않다. 당연히 다른 모든 프로그래밍도 마찬가지이나, 케라스가 약간 상위에 있는 프레임워크라는 점에서 아는 사람들은 더 사용하기 편하지만 모르는 사람은 오히려 더 뭔가 변경하고 바꾸기가 힘든 느낌이었다. 그런데 이 책은 그런 쪽의 설명이 조금 부족하다는 생각이 든다. 이 오히려 뭔가 자신만의 것을 하고 싶을 때 걸림돌로 작용한단 생각이 들었다.


설치 관련

어떤 프로그래밍이든 시작할 때 가장 큰 장벽은 설치이다. 특히 한 번에 설치할 수 있는 인스톨러가 없는 경우 시작부터 막막한 때가 있는데, 요즘엔 docker를 사용해 편리하게 설치하고 필요없으면 지울 수 있어서 예전보다는 훨씬 덜한 것 같다.

케라스의 경우는 tensorflow(https://hub.docker.com/r/tensorflow/tensorflow/) 와 달리 official docker image는 없는 걸로 보인다. 그래서 hub.docker.com에서 star로 정렬한 후 설치봤는데, 결과는 다음과 같다.

사용한 docker version은 17.12.0-ce였고, 위의 페이지에 나온 대로 docker run을 실행하면 바로 image를 받아서 동작을 시작한다.

* 한빛 미디어의 도서를 제공받아 작성한 리뷰임


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
골빈해커의 3분 딥러닝 - 텐서플로 코드로 맛보는 CNN.AE.GAN.RNN.DQN (+ Inception) 3분 딥러닝 시리즈
김진중 지음 / 한빛미디어 / 2017년 9월
평점 :
장바구니담기



  • title
  • github.com/golbin/TensorFlow-Tutorials
  • 장점; 얇은 책이 갖는 전형적인 장점을 갖는다. 수식이나 이론적인 이야기들보다 코드를 통한 실습에 중점을 두어 부담없이 읽을 수 있다. 책 출간 시점까지 최신의 내용을 담으려고 노력했다.
  • 단점; 얇은 책이 갖는 전형적인 단점도 갖는다. (물론 개인 실력의 문제이긴 하지만 나의 경우) 읽고 나서 뭘 해보려고 해도 기초가 없이 봤더니 감이 잘 안 잡힌다. 기초가 없는 경우 읽기 전후로 기초 강의를 듣고 반복적으로 보는 게 좋을 거 같다.
  • 결론; 당연한 말이지만, 기초가 없는 경우 많은 노력이 필요하다. 그래도 다가가기 어렵다는 생각이 들 때 시작을 하기 쉽게 도와준다는 점 만으로도 가치가 있다고 생각한다.
  • tip; 실습할 때 version이 바뀌고 설치도 귀찮은 경우 docker를 이용하면 편리하다. 조금 큰 걸 돌리려고 하면 속도가 많이 느리지만, 간단한 예제 정도는 간단히 할 수 있다.
    • docker로 tensorflow image를 가져와서 실행
      • 1
    • jupyter notebook 접속
      • 2



댓글(0) 먼댓글(0) 좋아요(1)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
시작하세요! 도커 - 기초 개념부터 최신 도구 활용법까지 망라한 위키북스 시스템 & 네트워크 시리즈 6
용찬호 지음 / 위키북스 / 2017년 4월
평점 :
절판


자세하지는 않아도 전반적인 부분을 잘 다루고 있어 보기 좋음

댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
처음 시작하는 AWS 람다 - 서버리스 아키텍처를 향한 첫 발걸음 한빛 리얼타임 Hanbit Realtime 137
매튜 풀러 지음, 문경식 외 옮김 / 한빛미디어 / 2016년 10월
평점 :
절판


  • 프로그래밍 관련 소식이나 블로그를 보다 보면 몇 년새 AWS에 대한 이야기가 폭발적으로 늘어났다는 걸 알 수 있다. 그와 함께 서버리스 아키텍쳐에 대한 관심도 증가하면서 자연스레 AWS lambda에 대한 소식도 많이 볼 수 있다. AWS lambda에 대해 관심은 있지만, 선뜻 시작하기 어렵게 느껴질 때 보기 좋은 책이란 생각이 든다
  • 장점
    • 정말 실제로 사용해본 경험을 바탕으로 썼다는 점이 느껴진다. 특히 lambda를 사용하지 않아야 하는 경우를 설명하는 14장이나, 비용에 대해 알려주는 19장의 경우가 좋았다
  • 단점
    • node.js로 예제를 설명했는데, 비교적 간단하다고 하지만, 사용해본 적이 없는 입장에서 약간 거북할 수 밖에 없었다(물론 node.js 사용자라면 반대로 장점)
    • AWS 관련 서비스를 실제로 사용해본 적이 없는 사용자라면, 좀 헤멜수도 있다고 예상한다. 한꺼번에 많은 이야기가 나오니 초반부(hello world 예제) 이후로는 따라가기가 좀 버거웠다. 책의 컨셉 자체가 빠르고 간단하게 볼 수 있도록 군더더기를 제거하고, 각 장도 짧게 구성하려 한 점은 이해할 수 있으나, 대상이 초중급이라면 조금만 더 보기 쉽게 설명하면 좋겠단 생각이 든다



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
만약 헤밍웨이가 자바스크립트로 코딩한다면 - 피보나치, 팩토리얼, 행복수, 소수, 메서드 체인에 대한 문학 거장들의 기발한 해법
앵거스 크롤 지음, 김나솔 옮김 / 한빛미디어 / 2016년 11월
평점 :
절판



  • 한빛미디어 리뷰어에 신청했는데, 당첨이 되고 나서 받은 책이라 읽게 되었다. 자바스크립트는 정말 기초만 알고, 사용하지도 않기 때문에 내가 책을 선택할 수 있었다면 아마 하지 않았을 것이다. 게다가 일종의 편견이긴 하지만, 개발 서적을 개발자가 아니라 번역가가 하는 경우(이 책의 저자는 그래도 좀 나은 게 개발자 영어라는 페이스북 그룹을 운영하는 분으로 나프다에도 출연)는 보통 기술적으로 오류가 있는 경우가 많아 좋아하지 않기도 한다.
  • 하지만, 왠지 폼 나보이는 책 제목에, 리뷰를 써야 한다는 의무감이 겹쳐 읽기 시작했는데, 의외로 금방 읽을 수 있었다. 빨리 읽을 수 있었던 이유는 유명한 작가들에 관한 이야기가 재미있기도 하고, 자바스크립트를 모르니, 코드를 읽기는 하지만, 이해가 안 되는 부분을 하나씩 분석해볼 시간이 없어 그냥 읽고 넘겼기 때문이다.
  • 저자는 문학에 대해 관심이 많고, 아주 잘 아는 거 같다. 코드를 보면 자바스크립트를 모르는 사람이라도, 정말 다양한 스타일로 썼다는 걸 알 수 있다. 하지만 문제는 독자도 잘 알아야 이해할 수 있다는 점이 문제이다. 자바스크립트를 사용하며(이런 개발자는 많겠지), 동시에 문학에 대해 잘 알고(대폭 감소), 작가의 스타일을 이해하며(대폭 감소), 그 미묘한 문학적 차이까지 이해하려면 과연 얼마나 남을까? 게다가 이건 번역서라 원래는 해당 작가의 언어로 책을 읽어야 한다는 걸 생각하면…
    • 이건 일단 알고 모르고를 떠나 현업에서 정말 보기 싫은 코드 스타일… https://github.com/angus-c/literary.js/blob/master/book/adams/prime.js

      // Here I am, brain the size of a planet, and they ask me to write JavaScript...
      function kevinTheNumberMentioner(_){
        l=[]
        /* mostly harmless --> */ with(l) {
          
          // sorry about all this, my babel fish has a headache today...
          for(ll=!+[]+!![];ll<_+(+!![]);ll++) {
            lll=+!![];
            while(ll%++lll);
            // I've got this terrible pain in all the semicolons down my right hand
      side
            (ll==lll)&&push(ll);
          }
          forEach(alert);
        }
          
        // you're really not going to like this...
        return [!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]];
      }
      
    • 이상의 시가 생각나는 코드 Calvino https://github.com/angus-c/literary.js/blob/master/book/calvino/sayIt.js

      function sayIt(word) {
        var verse = '';
        //If on a winter's night a programmer
        return chapterOr(word, function chapter1(word) {
          //outside the meaningful logic
          return chapterOr(word, function chapter2(word) {
            //leaning towards deep nesting
            return chapterOr(word, function chapter3(word) {
              //without fear of callback hell
              return chapterOr(word, function chapter4(word) {
                //looks back at the gathering indents
                return chapterOr(word, function chapter5(word) {
                  //in a network of functions that enlace
                  return chapterOr(word, function chapter6(word) {
                    //in a network of functions that stack
                    return chapterOr(word, function chapter7(word) {
                      //on a carpet of illusions
                      return chapterOr(word, function chapter8(word) {
                        //around an empty core...
                        return chapterOr(word, function chapter9(word) {
                          //What story down there awaits its end?
                          return chapterOr(word, chapter1);
                        });
                      });
                    });
                  });
                });
              });
            });
          });
        });
        function chapterOr(word, chapter) {
          word && (verse += (verse && ' ') + word);
          return word ? chapter : verse;
        }
      }
      
    • 이 책에서 유일하게 오류로 끝나는 코드라고… Kafka https://github.com/angus-c/literary.js/blob/master/book/kafka/sayIt.js

      function sayIt(firstWord) {
        var words = [];
        return (function sayIt(word) {
          if (!word) {
            try {
              return sayIt();
            } catch (e) {
              // quitting at last an unsettling recursion,
              // the array was trasformed into a monstrous string
              words = "there's been a hideous bug";
              return words;
            }
          } else {
            words.push(word);
            return sayIt;
          }
        })(firstWord);
      }
      
  • 하지만 그 어려움에도 불구하고, 책 자체는 작가들에 대한 설명만으로도 재미있게 읽을 수 있긴 하다. 누구나 알듯 코드도 일종의 글쓰기라는 점을 생각하면, 이런 식으로 다양한 스타일로 코드를 작성할 수 있다는 게 일단 재미있기도 하고, 그러면서 새로운 문법을 배울 수도 있고, 무엇보다 더 나은 코드 쓰기를 위한 발판이 될 수 있으니… 한 마디로 좋은 책!



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
처음 처음 | 이전 이전 | 11 | 12 | 13 |다음 다음 | 마지막 마지막