반응형

 

#서문_ 부자 아버지 vs. 가난한 아버지 - 27p.

두 아버지 모두 제때 청구서를 처리했다. 하지만 한 분은 그것을 가장 먼저 처리했고, 다른 한 분은 그것을 가장 나중에 처리했다.

한 아버지는 기업이나 정부가 우리를 돌보고 우리의 필요를 해결해 주어야 한다고 생각했다. 그분은 늘 봉급 인상, 은퇴 계획, 의료 혜택, 병가, 휴가 등 이런저런 보상에 신경을 쏟았다. 그분은 자신의 삼촌 두 명이 이십 년 군 복무를 마치고 퇴직한 후 평생 연금 혜택을 받은 것에 감명을 받았다. 그분은 군에서 퇴역 군인에게 제공하는 의료 혜택과 PX 특권을 아주 마음에 들어 했다. 때로는 평생고용 보장과 복리후생을 직업 자체보다 더 중요한 것으로 여겼다. 그분은 종종 이렇게 얘기했다. "나는 정부를 위해 열심히 일했으므로 이런 혜택을 받을 자격이 있다."

다른 아버지는 완전한 재정적 자립을 중시했다. 그분은 정부나 기업을 향한 '보상 심리'를 비판했고, 그것이 사람들을 나약하고 재정적으로 취약하게 만든다고 생각했다. 그분은 재정적 자립을 늘 강조했다.

한 아버지는 몇 푼이라도 아끼려고 노력했고, 다른 아버지는 몇 푼이라도 투자할 곳을 찾았다.

 

 

#교훈1_ 부자들은 돈을 위해 일하지 않는다

- 52~53p.

"삶은 우리 모두를 내두른단다. 어떤 사람들은 포기하고 어떤 사람들은 싸우는데, 몇몇 사람들은 뭔가를 배워서 앞으로 나아가지. 이런 사람들은 삶이 자신을 내두르는 것을 오히려 환영한단다. 이런 소수의 사람들에게는 그것이 무언가 배워야 할 필요가 있음을 의미하기 때문이지. 그들은 그렇게 배우면서 전진한단다. 물론 대부분은 포기하고, 어떤 사람들은 너처럼 싸우고......"

"만약 네가 이 교훈을 제대로 배운다면 현명하고 부유하며 행복한 젊은이로 성장할 수 있을 거란다. 하지만 이 교훈을 깨닫지 못한다면 너는 너 자신의 문제에 대해 일자리나 낮은 급료, 상사 등을 탓하며 평생을 보내게 되겠지.  너는 늘 무언가 획기적인 돌파구가 생겨 돈과 관련된 모든 문제를 해결해 줄 거라는 헛된 희망이나 꿈꾸며 삶을 살게 될 거야."

 

- 63p.

"돈을 벌면 세금을 내야 해. 돈을 쓸 때에도 세금을 내야 하지. 저축을 할 때도 세금을 내고, 심지어 죽을 때도 세금을 내야 한단다."

"왜 정부가 그런 짓을 하게 내버려 두는데요?"

"부자들은 안 그런다. 가난한 사람들과 중산층은 그러지만 말이야."

 

- 98~99p.

  • 가난한 사람들과 중산층은 돈을 위해 일하지만 부자들은 돈이 자신을 위해 일하게 만든다.
  • 삶은 사람들을 제멋대로 내두른다. 어떤 사람들은 포기하고 어떤 사람들은 싸우지만, 몇몇 소수의 사람들은 거기서 교훈을 얻고 앞으로 나아간다. 그들은 삶이 자신을 내두르는 것을 오히려 환영한다.
  • 상대를 탓하지 말고, 상대가 문제라고 여겨서도 안 된다. 만일 상대가 문제라고 생각한다면 상대를 바꾸려고 애써야 하기 때문이다. 하지만 자신이 문제라는 걸 깨달으면 자기 자신을 바꿀 수는 있다. 그래야 무언가를 배우고 더 현명해진다.
  • 대부분의 사람들은 돈 문제와 관련해서는 안전을 추구하고 안정감을 느끼고 싶어 한다. 그래서 열정이 아니라 두려움을 따른다.
  • 대부분의 사람들은 더 많은 돈이 주어지면 더 많은 빚에 빠져들 뿐이다.
  • 대부분의 사람들이 계속 참고 일을 하는 이유는 두려움 때문이다. 청구서를 제때 내지 못할지도 모른다는 두려움, 해고될지도 모른다는 두려움, 모든 걸 새로 시작해야 할지도 모른다는 두려움 등등. 이것이 바로 직장에서 일하는 법을 배워서 돈을 위해 일해야 할 때 지불해야 하는 대가다. 대부분의 사람들은 그렇게 돈의 노예가 되고, 애꿎은 사장을 탓한다.
  • 대부분의 사람들은 자신이 이성 대신 감정을 사용해 생각하고 있다는 사실을 깨닫지 못한다.
  • 직장은 장기적 문제에 대한 단기적 해결책일 뿐이다.
  • 대부분의 사람들은 두려움과 욕망이라는 감정에 휘말려 월급봉투와 임금인상, 안정적인 직장만을 좇는다. 그런 감정이 지배하는 사고가 자신을 어디로 몰고 갈지도 전혀 모르면서 말이다. 이것은 마치 당나귀가 코앞에 매달린 당근을 쫓아가는 상황과 비슷하다. 당근을 손에 들고 있는 주인을 맹목적으로 따르는 것과 다르지 않다. 당나귀 주인은 그런 식으로 자기가 원하는 곳으로 가지만 당나귀는 환상을 좇고 있는 것에 불과하다. 다음 날에도 그다음 날에도 당나귀는 새 당근만 받으면 끝이니까.

 

 

#교훈2_ 왜 금융 지식을 배워야 하는가 - 122~124p.

다시 젊은 신혼부부에게로 돌아가 보자. 소득이 증가하자 그들은 꿈꾸던 집을 사기로 결심한다. 일단 새 집을 사고 나면, 그들은 이제 재산세라는 새로운 세금을 내야 한다. 그런 다음 이들은 새 차를 사고, 새 가구와 살림살이를 구입해 새 집을 단장한다. 그러다 어느 날 눈을 뜨면 부채 부문에 주택 융자와 신용카드 빚이 빽빽하게 들어차 있다. 즉 부채가 쌓여 있는 것이다.

부부는 이제 '새앙쥐 레이스'라는 함정에 빠져 있다. 곧이어 아기가 태어나고 두 사람은 더욱 열심히 일한다. 이런 과정이 되풀이된다. 소득이 늘면서 세금도 늘어난다. 이른바 '과세 계급 향상' 현상이다. 신용카드가 우편으로 날아온다. 그들은 그것을 사용한다. 그러다 보니 한도액이 초과된다. 대출 회사가 전화를 걸어 그들의 가장 큰 '자산'인 집의 가격이 올랐다고 말한다. 그러고는 두 사람의 신용 등급이 높기 때문에 채무 통합대출을 받을 수 있다고 권한다. 돈을 빌려 신용카드 빚을 갚음으로써 고이율의 가계 대출을 해결하는 것이 현명한 일이라는 것이다. 게다가 주택 융자금의 이자는 세금 감면을 받을 수 있다. 그래서 두 사람은 그들의 말을 따른다. 이자율이 높은 신용카드 빚을 갚은 다음 안도의 한숨을 내쉰다. 이제 신용카드 빚이 사라졌다. 두 사람은 이제 가계 대출을 주택 융자로 돌린다. 주택 융자금 상환 기간은 삼십 년이기 때문에 당장의 지출이 줄어든다. 정말 잘한 일인 것 같다. 이웃 사람이 전화를 걸어 같이 쇼핑을 가자고 말한다. 정기 세일 주간이란다. 그들은 물건을 사지 말고 그저 구경만 하자고 굳게 다짐하지만 그래도 혹시 모르니 신용카드를 챙겨간다.

 

더보기

세금과 복지후생 계획 - 122p.

사회적 요구로 세금 수요가 확대됨에 따라 전 세계적으로 재산세와 소득세 그리고 부가가치세가 오르고 있다. 또한 정부가 사회복지 사업, 즉 복지후생 계획에 재원을 조달하기 위해 세율을 꾸준히 올려 고소득은 더욱 큰 폭의 브래킷 크리프(brackeet creep, 물가상승으로 인한 명목소득 증가로 의도치 않게 일어나는 증세, 즉 납세자의 실질 소득 상승과 관계없이 물가가 올라 발생하는 증세다. 정부가 의도하지 않고 납세자도 인지하지 못하는 상태에서 늘어나는 세금이기 때문에 '숨겨진 증세(hidden tax hike)' 라고도 불린다.)를 창출하게 된다. 오늘날 각국의 정부는 사회보장제도나 건강보험 같은 복지후생 계획이 지불불능 상태에 이를지도 모르는 심각한 도전에 직면해 있다.

 

 

 

#교훈3_ 부자들은 자신을 위해 사업을 한다

- 162~163p.

레이는 그의 사업이 기본적으로 햄버거 체인점을 파는 것임을 알고 있었다. 그러나 그가 가장 중요하게 생각하는 것은 각 체인점의 위치였다. 그는 부지와 그 위치가 각각의 체인점이 성공하는 데 가장 중요한 요인임을 알고 있었다. 말하자면 맥도날드 체인점의 영업권을 구매하는 사람은 레이 크록의 회사를 위해 가게가 위치한 부동산을 사는 것이었다.

오늘날 맥도날드는 세계에서 가장 많은 부동산을 보유하고 있는 단일 조직이다. 심지어 천주교 교회보다도 더 많은 부동산을 보유하고 있다. 맥도날드는 미국은 물론 전 세계에서 가장 비싼 교차로와 거리 모퉁이에 있는 땅들을 갖고 있다.

 

- 176p.

로버트는 다음과 같은 범주에 속해야 진정한 자산이라고 강조한다.

  1. 내가 없어도 되는 사업. 소유자는 나지만 관리나 운영은 다른 사람들이 하고 있다. 내가 직접 거기서 일을 해야 한다면 그것은 사업이 아니라 내 직업이다.
  2. 주식
  3. 채권
  4. 수입을 창출하는 부동산
  5. 어음이나 차용증
  6. 음악이나 원고, 특허 등 지적 자산에서 비롯되는 로열티
  7. 그 외에 가치를 지니고 있거나 소득을 창출하거나 시장성을 지닌 것

 

 

#교훈4_ 부자들의 가장 큰 비밀, 세금과 기업 - 203~204p.

금융IQ는 다음 네 가지 분야의 지식으로 구성된다.

  1. 회계 : 재무를 관리할 수 있는 능력, 또는 숫자를 읽고 이해하는 능력. 이를 통해 사업의 강점과 약점을 파악할 수 있다.
  2. 투자 : '돈이 돈을 버는' 방법에 대한 과학이자 전략
  3. 시장에 대한 이해 : 수요와 공급, 그리고 시장 상황의 과학
  4. 법률 : 세금 혜택과 보호책에 관한 지식

 

 

#교훈5_ 부자들은 돈을 만든다 - 250p.

금융 IQ를 키우고 그것을 실제로 적용할 때 명심해야 할 한 가지는 즐길 줄 알아야 한다는 것이다. 이득을 볼 때도 있고 손실을 볼 때도 있을 것이다. 중요한 것은 어느 때건 즐겨야 한다는 사실이다. 손실을 두려워하지 말라. 실패는 성공 과정의 일부임을 기억하라.

세상에는 두 부류의 투자가가 있다. 첫째는 패키지 투자를 사는 흔한 유형이다. 이들은 부동산 회사나 주식 중개인, 또는 자산 관리사처럼 금융상품을 대량으로 다루는 전문가들을 찾아가 무언가를 구입한다. 둘재는 투자를 창조하는 유형이다. 전문 투자가가 여기에 속한다.

만약 두 번째 유형의 투자가가 되고 싶다면 세 가지 중요 기술을 익혀야 한다.

  • 첫째, 다른 사람들이 놓친 기회를 찾는 기술
  • 둘째, 자금 조달 기술
  • 셋째, 똑똑한 사람들을 조직화하고 자신보다 더 똑똑한 사람들을 고용하는 기술. 바로 이 세가지다.

리스크는 언제 어디에나 있으니, 다라서 그것을 피하기보다는 관리하는 법을 배워야 한다.

 

 

#교훈6_ 돈을 위해 일하지 말고 교훈을 얻기 위해 일하라 - 255p.

교육을 많이 받은 아버지에게는 직업의 안정성이 모든 것을 의미했다.

부자 아버지에게는 배움이 모든 것을 의미했다.

 

 

# 부자로 가는 길을 가로막는 장애물은 무엇인가? - 287p.

부자와 가난한 자의 근본적인 차이점은 두려움을 다루는 방식이다.

 

 

# 부자가 되는 10단계 - 372p.

TV 토론회의 패널에는 시장이 곧 무너질 것이라고 말하는 전문가와 호황이 찾아올 것이라고 말하는 전문가가 꼭 끼기 마련이다. 양쪽 모두의 의견에 귀를 기울이라. 둘 다 어느 정도 일리가 있기 때문이다.

재산을 모을 때 가장 어려운 점 중 하나는 스스로에게 솔직해지고 대중을 따라 몰려가지 않는 것이다. 시장에서 대중이란 가장 늦게 나타나 손해를 보는 사람들이다. 대신, 새로운 거래를 찾으라.

똑똑한 투자가들은 시장의 타이밍에 연연하지 않는다. 그들은 파도 하나를 놓치면 다른 파도를 찾아다니며 자신의 포지션을 확보한다. 현명한 투자가들은 인기 없는 투자 상품을 산다. 그들은 팔 때가 아니라 살 때 이익을 만든다는 사실을 알고 있다. 사실 중요한 것은 합법적인 '내부자 거래'다. 돈을 벌 수 있는 정보를 가진 부자 친구들과 가까이 지내라. 돈을 버는 것은 바로 정보다.

 

  1. 현실보다 더 좋은 '이유'를 찾으라: 정신의 힘
  2. 매일같이 선택하라: 선택의 힘
  3. 친구는 신중하게 고르라: 협조의 힘
  4. 하나의 방식에 통달하라. 그런 다음 새로운 것을 익혀라: 빠른 배움의 힘
  5. 자신에게 먼저 지불하라: 자기 통제의 힘
  6. 중개인에게 넉넉하게 지불하라: 좋은 조언의 힘
  7. 인디언들처럼 주고받으라: 공짜로 얻는 힘
  8. 자산을 이용해 사치품을 사라: 집중의 힘
  9. 당신의 영웅을 선택하라: 신화의 힘
  10. 가르치라 그러면 받으리라: 주는 것의 힘

 

 

# 아직도 더 알고 싶다면 당신이 해야 할 일들 - 390~391p.

소비자들은 언제나 가난하다. 슈퍼마켓이 세일을 할 때, 예를 들어 화장실 휴지를 싸게 팔면 소비자들은 우르르 몰려와 사재기를 해 댄다. 그러나 부동산이나 주식 시장이 세일을 하게 되면(이런 걸 가격 폭락 또는 시장 붕괴라고 한다.) 소비자들은 이상하게 거기서 도망쳐 버린다. 슈퍼마켓이 가격을 올리면 소비자들은 쇼핑을 하러 다른 곳에 간다. 그러나 부동산이나 주식 시장의 가격이 올라가면, 소비자들은 갑자기 달려와 사들이기 시작한다. 이 점을 명심하라. 당신이 이득을 올리는 것은 팔 때가 아니라 살 때다.

 

  • 지금 하는 일을 중단하라
  • 새로운 아이디어를 찾으라
  • 당신이 하고 싶은 일을 해낸 사람을 찾으라
  • 강의를 듣고 책을 읽고 세미나에 참석하라
  • 많은 제안을 하라
  • 한 달에 십 분 정도 특정 지역을 걷거나 조깅을 하거나 운전하라
  • 모든 시장에서 저렴한 상품을 찾으라
  • 올바른 장소를 찾으라
  • 사고 싶어 하는 사람들을 먼저 찾으라. 그런 다음 팔고 싶어 하는 사람을 찾으라
  • 역사에서 배우라
  • 행동은 늘 행동하지 않는 것보다 낫다

 

반응형
반응형

 

(source : GCP qwiklabs)

 

버킷생성 

 

1. 버킷 생성 : Navigation menu> Storage > [Create a standard bucket]

 

 

2. Babyweight 데이터세트를 스토리지 버킷에 복사

- Cloud Shell에서, 아래 명령어를 실행하여 사전 처리된 데이터세트를 내 버킷에 복사

- <BUCKET> 부분을 위에서 생성한 버킷 이름으로 변경

gsutil cp gs://cloud-training-demos/babyweight/preproc/* gs://<BUCKET>/babyweight/preproc/

 

(결과화면)

 

 

TensorBoard 설정 + AI Platform Notebooks 생성

 

3.  Cloud Shell에서, TensorBoard를 지원하는 Cloud AI Platform Notebook 인스턴스를 생성

export IMAGE_FAMILY="tf-1-14-cpu" 
export ZONE="us-west1-b" 
export INSTANCE_NAME="tf-tensorboard-1" 
export INSTANCE_TYPE="n1-standard-4" 
gcloud compute instances create "${INSTANCE_NAME}" \ 
     --zone="${ZONE}" \ 
     --image-family="${IMAGE_FAMILY}" \ 
     --image-project=deeplearning-platform-release \ 
     --machine-type="${INSTANCE_TYPE}" \ 
     --boot-disk-size=200GB \ 
     --scopes=https://www.googleapis.com/auth/cloud-platform \ 
     --metadata="proxy-mode=project_editors"

 

 

4. Navigation Menu > AI Platform > Notebooks 클릭

 

 

5. 인스턴스 생성 확인 : REFRESH 버튼 클릭 

(인스턴스 생성까지 2~3분 정도 소요될 수 있음)

 

 

6. 주피터 노트북 열기 : 생성된 인스턴스에서 OPEN JUPYTERLAB 클릭

 

(결과화면) JupyterLab Window가 새창으로 열림

 

 

AI Platform Notebooks 인스턴스에 학습 Repo 복사

 

 

 

7. 학습 Repo 복사 : JupyterLab에서 Terminal 아이콘을 클릭한 후, 아래 명령어 실행하여 git에서 training-data-analyst 클론

git clone https://github.com/GoogleCloudPlatform/training-data-analyst

 

(결과화면)

 

 

학습(training) 예측(prediction) 모델 실행하기

 

8. 아래 경로로 이동하여 노트북 실행

- training-data-analyst > blogs > babyweight > train_deploy.ipynb 실행

- Python 커널을 Python3로 변경 (default : Python 2)

train_deploy.html
0.44MB

 

- 노트북 코드를 따라 아래 내용을 단계별로 실습할 수 있음 (Shift + Enger)

   1) Dataflow를 사용하여 머신러닝을 위한 Babyweight 데이터 세트 생성

   2) Estimator API를 사용하여 모델 구축

   3) Cloud ML Engine에서 머신러닝 모델 학습 (Training)

   4) 학습된 모델 배포 (Deploying)

   5) 모델을 활용하여 예측 (Predicting)

 

 

9. 텐서보드(TensorBoard)에서 작업결과 확인하기

- File > New Luancher > Tensorboard 클릭

- SCALARS

 

- GRAPHS

 

- DISTRIBUTIONS

 

- HISTOGRAMS

 

- PROJECTOR

반응형
  1. 2020.09.05 20:37

    비밀댓글입니다

반응형

 

(source : GCP qiwklabs)

 

AI Platform Notebooks 생성

 

1. Navigation Menu > AI Platform > Notebooks 클릭

 

2. 인스턴스 생성 : NEW INSTANCE 클릭 

- Tensorflow Enterprise 1.15 > Without GPUs 선택

 

3. 팝업창이 뜨면 딥러닝 VM 이름을 입력/확인 하고 Create 클릭

 

(VM 생성까지 2~3분 정도 소요될 수 있음)

 

4. Open JupyterLab 클릭 > JupyterLab Window가 새창으로 열림

 

Datalab instance에 학습용 repo 복제

- training-data-analyst 를 내 JupyterLab 인스턴스에 복제

 

1. JupyterLab 에서 터미널 아이콘(Terminal icon) 클릭하여 새 터미널 창을 오픈

 

2. 커맨드라인에서 아래 명령어를 입력하고 Enter

git clone https://github.com/GoogleCloudPlatform/training-data-analyst

 

실행 결과 : 

 

3. training-data-anlyst 디렉토리를 더블 클릭하여 컨텐츠가 제대로 복제되었는지 확인

 

 

 

기본적인 TensorFlow 활용 예제

 

1. 데이터셋 탐색

- notebook 인터페이스에서 training-data-analyst > courses > machine_learning > deepdive > 06_structured > 1_explore.ipynb 선택

1_explore.html
0.36MB

 

 

2. 샘플 데이터셋 생성

- notebook 인터페이스에서 training-data-analyst > courses > machine_learning > deepdive > 06_structured > 2_sample.ipynb 선택

2_sample.html
0.29MB

 

 

3. 텐서플로우 모델 생성

- notebook 인터페이스에서 training-data-analyst > courses > machine_learning > deepdive > 06_structured > 3_tensorflow_dnn.ipynb & 3_tensorflow_wd.ipynb 선택

3_tensorflow_dnn.html
0.29MB
3_tensorflow_wd.html
0.29MB

 

4. 데이터 전처리 (Preprocessing)

- notebook 인터페이스에서 training-data-analyst > courses > machine_learning > deepdive > 06_structured > 4_preproc.ipynb 선택

4_preproc.html
0.29MB

 

 

5. Cloud AI Platform 에서 Machine Learning 모델 학습하기 (Training)

- notebook 인터페이스에서 training-data-analyst > courses > machine_learning > deepdive > 06_structured > 5_train.ipynb 선택

5_train.html
0.32MB

 

 

6. Cloud AI Platform 에서 모델 배포 (Deploying)

- notebook 인터페이스에서 training-data-analyst > courses > machine_learning > deepdive > 06_structured > 6_deploy.ipynb 선택

6_deploy.html
0.28MB

 

 

 

이미지 분석

 

7. MNIST 이미지 분석 - 선형 모델(Linear model)

- training-data-analyst > courses > machine_learning > deepdive > 08_image > mnist_linear.ipynb 선택

mnist_linear.html
0.30MB

 

 

8. MNIST 이미지 분석 (Image Classification) - CNN & DNN(Deep Neural Network model)

- training-data-analyst > courses > machine_learning > deepdive > 08_image > mnistmodel > trainer > model.py 선택

- training-data-analyst > courses > machine_learning > deepdive > 08_image > mnist_models.ipynb 선택

mnist_models.html
0.30MB
model.py
0.01MB

 

※ 드랍아웃(Dropout)을 사용하려면 모델 타입 MODEL_TYPE 을 dnn_dropout 으로 변경

※ CNN을 사용하려면 모델 타입 MODEL_TYPEcnn 으로 변경

 

 

9. 꽃 이미지 분석 (Flowers Image Classification) - 이미지 오그멘테이션 (Image Augmentation)

- training-data-analyst > courses > machine_learning > deepdive > 08_image > flowersmodel > model.py

- training-data-analyst > courses > machine_learning > deepdive > 08_image > flowers_fromscratch.ipynb

flowers_fromscratch.html
0.29MB
model.py
0.01MB

 

 

 

시계열 데이터 분석

 

10. 시계열 데이터 분석 (Time Series Prediction) 

- training-data-analyst > courses > machine_learning > deepdive > 09_sequence > sinemodel > model.py

- training-data-analyst > courses > machine_learning > deepdive > 09_sequence > sinewaves.ipynb

sinewaves.html
0.28MB
model.py
0.01MB

 

※ 모델 옵션

 - 선형 모델 (Linear Model) : --model = linear (defuault 값은 linear 모델)

 - DNN 모델 (Deep Neural Netowrk Model) : --model = dnn

 - CNN 모델 (Convolutional Neural Network Model) : --model = cnn

 - RNN 모델 (Recurrent Neural Network Model) : --model = rnn

 - 2-layer RNN 모델 (Two-Layer Recurrent Neural Network Model) : --model = rnn2

 

 

11. 날씨/온도 시계열 데이터 분석 (Time Series Prediction)

- training-data-analyst > courses > machine_learning > deepdive > 09_sequence > temperatures.ipynb

temperatures.html
1.32MB

 

 

 

텍스트 분석

 

12. 텍스트 분석 (Text Classification)

- training-data-analyst > courses > machine_learning > deepdive > 09_sequence > txtclsmodel > trainer > model.py

- training-data-analyst > courses > machine_learning > deepdive > 09_sequence > text_classification.ipynb

text_classification.html
0.30MB
model.py
0.01MB

 

 

13. 학습 모델 평가 (Evaluating a Pre-trained embeddings)

- training-data-analyst > courses > machine_learning > deepdive > 09_sequence > reusable-embeddings.ipynb

reusable-embeddings.html
0.34MB

 

 

14. 텍스트 제너레이션 (Text generation) - tensor2tensor 활용

- training-data-analyst > courses > machine_learning > deepdive > 09_sequence > poetry.ipynb

poetry.html
0.35MB

 

 

 

추천 시스템

 

15. 컨텐츠 기반 추천 시스템 (Content-based Recommendation System)

- training-data-analyst > courses > machine_learning > deepdive > 10_recommend > content_based_by_hand.ipynb

content_based_by_hand.html
0.29MB

 

- training-data-analyst > courses > machine_learning > deepdive > 10_recommend > content_based_preproc.ipynb

content_based_preproc.html
0.29MB

 

- training-data-analyst > courses > machine_learning > deepdive > 10_recommend > content_based_using_neural_networks.ipynb

content_based_using_neural_networks.html
0.37MB

 

 

16. 구글 애널리틱스 데이터 - 추천 시스템 : 협업 필터링 (Collaborative Filtering Recommendation System)

- training-data-analyst > courses > machine_learning > deepdive > 10_recommend > wals.ipynb

wals.html
0.49MB

 

 

17. 영화 MovieLens 데이터 - 하이브리드 추천 (Hybrid Recommendations)

- training-data-analyst > courses > machine_learning > deepdive2 > recommendation_systems > solutions > als_bqml_hybrid.ipynb

als_bqml_hybrid.html
0.28MB

 

 

18. 엔드 투 엔드 추천 시스템 (End-to-End Recommendation System)

- training-data-analyst > courses > machine_learning > deepdive > 10_recommend > endtoend > endtoend.ipynb 선택

endtoend.html
0.35MB

 

※ 18번 예제 노트북 실행 전, 아래 사항 체크

 1) 버킷 생성

 2) 주피터 노트북 (Jupyterlabs) 실행

 3) 클라우드 컴포저 인스턴스 생성 (Cloud Composer instance)

   - Navigation menu > Composer > Create (인스턴스 네임 = mlcomposer )  * 최초 실행시 15~20분 정도 소요됨

 4) 구글 앱 엔진 인스턴스 생성 (Google App Engine instance)

   - Cloud Shell 에서 아래 명령어를 순서대로 실행 (Region은 가까운 곳 선택)

gcloud app regions list
gcloud app create --region <REGION>
gcloud app update --no-split-health-checks

 

 

 

 

반응형
반응형

 

(source : GCP qwiklabs)

- Jupyter Notebook 실습 코드  

e_ai_platform.html
0.30MB

 

- Jupyter Notebook 실습 코드 : 정답 포함

e_ai_platform_solution.html
0.31MB

 

 

TensorBoard 설정 + AI Platform Notebooks 생성

 

1.  Cloud Shell에서, TensorBoard를 지원하는 Cloud AI Platform Notebook 인스턴스를 생성

export IMAGE_FAMILY="tf-1-14-cpu" 
export ZONE="us-west1-b" 
export INSTANCE_NAME="tf-tensorboard-1" 
export INSTANCE_TYPE="n1-standard-4" 
gcloud compute instances create "${INSTANCE_NAME}" \ 
     --zone="${ZONE}" \ 
     --image-family="${IMAGE_FAMILY}" \ 
     --image-project=deeplearning-platform-release \ 
     --machine-type="${INSTANCE_TYPE}" \ 
     --boot-disk-size=200GB \ 
     --scopes=https://www.googleapis.com/auth/cloud-platform \ 
     --metadata="proxy-mode=project_editors"

 

2. Navigation Menu > AI Platform > Notebooks 클릭

 

3. 인스턴스 생성 : NEW INSTANCE 클릭 

- Tensorflow Enterprise 1.15 > Without GPUs 선택

 

4. 팝업창이 뜨면 딥러닝 VM 이름을 입력/확인 하고 Create 클릭

 

(VM 생성까지 2~3분 정도 소요될 수 있음)

 

5. Open JupyterLab 클릭 > JupyterLab Window가 새창으로 열림

 

 

Scaling TensorFlow with AI Platform Training Service

 

 

training-data-analyst > courses > machine_learning > deepdive > 03_tensorflow > labs > e_ai_platform 실행

(정답확인) training-data-analyst > courses > machine_learning > deepdive > 03_tensorflow > e_ai_platform

 

반응형
반응형

 

(source : GCP qwiklabs)

 

- Jupyter Notebook 실습 코드 

d_traineval.html
0.27MB

 

- Jupyter Notebook 실습 코드 : 정답  포함

d_traineval_solution.html
0.28MB

 

1. 패키지 import

from google.cloud import bigquery
import tensorflow as tf
import numpy as np
import shutil
print(tf.__version__)

 

2. 입력

CSV_COLUMNS = ['fare_amount', 'pickuplon','pickuplat','dropofflon','dropofflat','passengers', 'key']
LABEL_COLUMN = 'fare_amount'
DEFAULTS = [[0.0], [-74.0], [40.0], [-74.0], [40.7], [1.0], ['nokey']]

def read_dataset(filename, mode, batch_size = 512):
      def decode_csv(value_column):
          columns = tf.decode_csv(value_column, record_defaults = DEFAULTS)
          features = dict(zip(CSV_COLUMNS, columns))
          label = features.pop(LABEL_COLUMN)
          # No need to features.pop('key') since it is not specified in the INPUT_COLUMNS.
          # The key passes through the graph unused.
          return features, label

      # Create list of file names that match "glob" pattern (i.e. data_file_*.csv)
      filenames_dataset = tf.data.Dataset.list_files(filename)
      # Read lines from text files
      textlines_dataset = filenames_dataset.flat_map(tf.data.TextLineDataset)
      # Parse text lines as comma-separated values (CSV)
      dataset = textlines_dataset.map(decode_csv)

      # Note:
      # use tf.data.Dataset.flat_map to apply one to many transformations (here: filename -> text lines)
      # use tf.data.Dataset.map      to apply one to one  transformations (here: text line -> feature list)

      if mode == tf.estimator.ModeKeys.TRAIN:
          num_epochs = None # indefinitely
          dataset = dataset.shuffle(buffer_size = 10 * batch_size)
      else:
          num_epochs = 1 # end-of-input after this

      dataset = dataset.repeat(num_epochs).batch(batch_size)
      
      return dataset

 

 

3. 입력 데이터에서 features 생성

INPUT_COLUMNS = [
    tf.feature_column.numeric_column('pickuplon'),
    tf.feature_column.numeric_column('pickuplat'),
    tf.feature_column.numeric_column('dropofflat'),
    tf.feature_column.numeric_column('dropofflon'),
    tf.feature_column.numeric_column('passengers'),
]

def add_more_features(feats):
    # Nothing to add (yet!)
    return feats

feature_cols = add_more_features(INPUT_COLUMNS)

 

 

4. Serving input function 

# Defines the expected shape of the JSON feed that the model
# will receive once deployed behind a REST API in production.
def serving_input_fn():
    json_feature_placeholders = {
        'pickuplon' : tf.placeholder(tf.float32, [None]),
        'pickuplat' : tf.placeholder(tf.float32, [None]),
        'dropofflat' : tf.placeholder(tf.float32, [None]),
        'dropofflon' : tf.placeholder(tf.float32, [None]),
        'passengers' : tf.placeholder(tf.float32, [None]),
    }
    # You can transforma data here from the input format to the format expected by your model.
    features = json_feature_placeholders # no transformation needed
    return tf.estimator.export.ServingInputReceiver(features, json_feature_placeholders)

 

 

5. tf.estimator.train_and_evaluate

def train_and_evaluate(output_dir, num_train_steps):
    estimator = tf.estimator.LinearRegressor(
                       model_dir = output_dir,
                       feature_columns = feature_cols)
    
    train_spec=tf.estimator.TrainSpec(
                       input_fn = lambda: read_dataset('./taxi-train.csv', mode = tf.estimator.ModeKeys.TRAIN),
                       max_steps = num_train_steps)

    exporter = tf.estimator.LatestExporter('exporter', serving_input_fn)

    eval_spec=tf.estimator.EvalSpec(
                       input_fn = lambda: read_dataset('./taxi-valid.csv', mode = tf.estimator.ModeKeys.EVAL),
                       steps = None,
                       start_delay_secs = 1, # start evaluating after N seconds
                       throttle_secs = 10,  # evaluate every N seconds
                       exporters = exporter)
    
    tf.estimator.train_and_evaluate(estimator, train_spec, eval_spec)

 

 

6. TensorBoard 에서 학습 모니터링

OUTDIR = './taxi_trained'

- JupyterLab UI > "File" - "New Launcher" > 'Tensorboard' 더블 클릭

 

7. Training (학습)

# Run training    
shutil.rmtree(OUTDIR, ignore_errors = True) # start fresh each time
tf.summary.FileWriterCache.clear() # ensure filewriter cache is clear for TensorBoard events file
train_and_evaluate(OUTDIR, num_train_steps = 500)

 

 

반응형

+ Recent posts