Giter Site home page Giter Site logo

rickiepark / handson-ml2 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ageron/handson-ml2

532.0 532.0 561.0 413.71 MB

핸즈온 머신러닝 2/E의 주피터 노트북

Home Page: https://tensorflow.blog/handson-ml2

License: Apache License 2.0

Jupyter Notebook 99.99% Dockerfile 0.01% Makefile 0.01% Shell 0.01% Python 0.01%
deep-learning hands-on-machine-learning keras machine-learning neural-network python scikit-learn tensorflow

handson-ml2's Introduction

Hi Everyone 👋

Blog Badge MVP Badge Cloud Badge Youtub Badge Facebook Badge Twitter Badge Linkedin Badge

I ❤️ to ✍️ about Machine Learning and Deep Learning. Here are repositories for 📚 that I translated or wrote. Just click 📙 to go the repo.

  • 📐 개발자를 위한 필수 수학 (repo, errata), 한빛미디어, 2024
  • 🦜 실무로 통하는 ML 문제 해결 with 파이썬 (repo, errata), 한빛미디어, 2024
  • 🔥 머신 러닝 교과서: 파이토치 편 (repo, errata), 길벗, 2023
  • ✏️ 스티븐 울프럼의 챗GPT 강의 (errata), 한빛미디어, 2023
  • 🦎 핸즈온 머신러닝 3판 (repo, errata), 한빛미디어, 2023
  • 🖼️ 만들면서 배우는 생성 AI 2판 (repo, errata), 한빛미디어, 2023
  • ⏰ 코딩 뇌를 깨우는 파이썬 (video, repo, errta), 한빛미디어, 2023
  • 🗿 챗GPT로 대화하는 기술 (errata), 한빛미디어, 2023
  • 👩‍🎓 혼자 공부하는 데이터 분석 with 파이썬 (video, repo, errata), 한빛미디어, 2023
  • 🤗 트랜스포머를 활용한 자연어 처리 (repo, errata), 한빛미디어, 2022
  • 🦄 케라스 창시자에게 배우는 딥러닝 2판 (repo, errata), 길벗, 2022
  • 👩‍💻 개발자를 위한 머신러닝&딥러닝 (repo, errata), 한빛미디어, 2022
  • 🚀 XGBoost와 사이킷런을 활용한 그레이디언트 부스팅 (repo, errata), 한빛미디어, 2022
  • 🦏 구글 브레인 팀에게 배우는 딥러닝 with TensorFlow.js (repo, errata), 길벗, 2022
  • 🐉 (개정2판)파이썬 라이브러리를 활용한 머신러닝 (repo, errata), 한빛미디어, 2022
  • 🦋 머신러닝 파워드 애플리케이션 (repo, errata), 한빛미디어, 2021
  • 🐦 파이토치로 배우는 자연어 처리 (repo, errata), 한빛미디어, 2021
  • 🤖 머신 러닝 교과서 3판 (video, repo, errata), 길벗, 2021
  • 🦪 딥러닝 일러스트레이티드 (repo, errata), 시그마프레스, 2021
  • 🧑‍🎓 혼자 공부하는 머신러닝+딥러닝 (video, repo, errata), 한빛미디어, 2020
  • 👗 GAN 인 액션 (repo, errata), 한빛미디어, 2020
  • 🦎 핸즈온 머신러닝 2 (video, repo, errata), 한빛미디어, 2020
  • 🖼️ 미술관에 GAN 딥러닝 (repo, errata), 한빛미디어, 2019
  • 💪 Do It! 딥러닝 (video, repo, errata), 이지스퍼블리싱, 2019
  • 🦜 파이썬을 활용한 머신러닝 쿡북 (repo, errata), 한빛미디어, 2019
  • 🤖 머신 러닝 교과서 (repo, errata), 길벗, 2019
  • 🐉 (개정판)파이썬 라이브러리를 활용한 머신러닝 (repo, errata), 한빛미디어, 2019
  • 🦄 케라스 창시자에게 배우는 딥러닝 (repo, errata), 길벗, 2018
  • 🦎 핸즈온 머신러닝 (repo, errata), 한빛미디어, 2018
  • 🐉 파이썬 라이브러리를 활용한 머신러닝 (repo, errata), 한빛미디어, 2017
  • 🧠 텐서플로 첫걸음 (repo, errata), 한빛미디어, 2016

handson-ml2's People

Contributors

ada-nai avatar ageron avatar akellyirl avatar arodiss avatar brokenairplane avatar chrisqlasty avatar cp612sh avatar daniel-s-ingram avatar dependabot[bot] avatar dgwozdz avatar francotheengineer avatar jirkalhotka avatar jmribeiro avatar kimjoin2 avatar kxrr avatar lujunweng avatar lvnilesh avatar mc-robinson avatar nbgraham avatar patsancu avatar pkourdis avatar psnilesh avatar rickiepark avatar soma11soma11 avatar stefan-it avatar stevenbunkley avatar vasili111 avatar vivek-v-rao avatar vladimir-tikhonov avatar ziembla avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

handson-ml2's Issues

18장 강화학습 추가 문의(업데이트 사항)

안녕하세요! 작년부터 이 분야에 계속 관심을 갖고 있는 독자입니다. 2판 758 page부터 TF-Agents 라이브러리를 사용해서 Atari 게임사의 Breakout-v4 버전을 사용해서 환경을 넣고 학습을 진행하는 것으로 알고 있습니다. 헌데, gym에서 로드가 되지 않습니다ㅠㅠ
import ale-py를 실행한 후에도 되지 않네요.

아래 실행환경은 colab입니다.

image

다만, jupyter notebook에서도 동일하게 되진 않습니다.
아마 license 문제인가 아닐까 싶습니다. 공식 docs도 확인해봤고, pyvirtualdisplay도 계속 만져봤는데,
계속 같은 문제가 있네요. 다른 버전도 실행은 안됩니다...
image

모쪼록 바쁘시겠지만, 확인 한번 부탁드립니다.

CH16, Sentiment Analysis Numpy version issue/Memory leak?

16장, RNN과 어텐션을 사용한 자연어 처리 챕터의 감성 분석, (Sentiment Analysis)
tfds에서 받아온 데이터셋을 전처리 후 훈련하는 과정의 코드 부분입니다.
저는 노트북의 GTX1660ti를 사용해 작업을 하고 있습니다.

import tensorflow_datasets as tfds
import tensorflow as tf
from tensorflow import keras
import tensorboard
import os
import numpy as np


(X_train, y_train), (X_test, y_test) = keras.datasets.imdb.load_data()

X_train[0][:10]


datasets, info = tfds.load("imdb_reviews", as_supervised=True, with_info=True)
train_size = info.splits["train"].num_examples
test_size = info.splits["test"].num_examples
print(train_size)



X_train[0][:10]

word_index = keras.datasets.imdb.get_word_index()
id_to_word = {id_ + 3: word for word, id_ in word_index.items()}
for id_, token in enumerate(("<pad>", "<sos>", "<unk>")):
    id_to_word[id_] = token
" ".join([id_to_word[id_] for id_ in X_train[0][:10]])


import tensorflow_datasets as tfds

datasets, info = tfds.load("imdb_reviews", as_supervised=True, with_info=True)


datasets.keys()

train_size = info.splits["train"].num_examples
test_size = info.splits["test"].num_examples

for X_batch, y_batch in datasets["train"].batch(2).take(1):
    for review, label in zip(X_batch.numpy(), y_batch.numpy()):
        print("Review:", review.decode("utf-8")[:200], "...")
        print("Label:", label, "= Positive" if label else "= Negative")
        print()

def preprocess(X_batch, y_batch):
    X_batch = tf.strings.substr(X_batch, 0, 300)
    X_batch = tf.strings.regex_replace(X_batch, rb"<br\s*/?>", b" ")
    X_batch = tf.strings.regex_replace(X_batch, b"[^a-zA-Z']", b" ")
    X_batch = tf.strings.split(X_batch)
    return X_batch.to_tensor(default_value=b"<pad>"), y_batch


preprocess(X_batch, y_batch)


from collections import Counter

vocabulary = Counter()
for X_batch, y_batch in datasets["train"].batch(32).map(preprocess):
    for review in X_batch:
        vocabulary.update(list(review.numpy()))

vocab_size = 10000
truncated_vocabulary = [
    word for word, count in vocabulary.most_common()[:vocab_size]]

words = tf.constant(truncated_vocabulary)
word_ids = tf.range(len(truncated_vocabulary), dtype=tf.int64)
vocab_init = tf.lookup.KeyValueTensorInitializer(words, word_ids)
num_oov_buckets = 1000
table = tf.lookup.StaticVocabularyTable(vocab_init, num_oov_buckets)



def encode_words(X_batch, y_batch):
    return table.lookup(X_batch), y_batch

train_set = datasets["train"].repeat().batch(32).map(preprocess)
train_set = train_set.map(encode_words).prefetch(1)




embed_size = 128
model = keras.models.Sequential([
    keras.layers.Embedding(vocab_size + num_oov_buckets, embed_size,
                           mask_zero=True, # not shown in the book
                           input_shape=[None]),
    keras.layers.GRU(128, return_sequences=True),
    keras.layers.GRU(128),
    keras.layers.Dense(1, activation="sigmoid")
])
model.compile(loss="binary_crossentropy", optimizer="adam", metrics=["accuracy"])
history = model.fit(train_set, steps_per_epoch=train_size // 32, epochs=5)

해당 코드 실행 시 두 가지 이슈가 있습니다.
Colab이 아닌 로컬 환경에서
Tensorflow 2.4.1 버전 기준, Numpy 1.20.1 버전과 함께 사용할 시
Cannot convert a symbolic Tensor (gru/strided_slice:0) to a numpy array.
메시지와 함께 코드 실행이 불가능해집니다. Numpy의 버전을 1.19.2로 다운그레이드하면 해결됩니다.
pip install numpy==1.19.2
로 해결 가능합니다.

두 번째로 메모리 이슈가 있어,

[_Derived_]RecvAsync is cancelled.
	 [[{{node Adam/Adam/update/AssignSubVariableOp/_41}}]]
	 [[gradient_tape/sequential/embedding/embedding_lookup/Reshape/_38]] [Op:__inference_train_function_115627]

메시지와 함께 실행되지 않습니다.

이는

gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
  try:
    tf.config.experimental.set_memory_growth(gpus[0], True)
  except RuntimeError as e:
    
    
    print(e)

코드를 추가함으로서 메모리 할당량 증가를 허용하면 실행이 가능합니다.

Handsonml2의 다른 코드에서 발견할 수 없던 현상이라 이슈를 작성합니다.
더 큰 코드에서도 메모리 할당량 증가 없이 돌아갔으며,
해당 메모리 할당량 증가 코드를 넣고 돌려도 gpu 메모리 사용량은 무척 적습니다.
이 또한 의문입니다.
이런 별도의 작업 없이 오류가 없도록 실행이 가능한 방법을 찾으려 합니다.

9장 분류를 위한 전처리에서 score

안녕하세요. 예측 정확도를 측정하기 위한 score를 구할 때 오류가 발생합니다.
그래서 accuracy score를 측정할 때도 같은 오류가 발생합니다.
당연히 훈련세트를 분리했으니 feature 수가 다른게 맞는데
어떻게 해야 해결이 될지 궁금합니다
스크린샷 2023-06-08 오후 4 37 30
스크린샷 2023-06-08 오후 4 37 39

14_deep_computer_vision_with_cnns 파일에 괄호가 누락이 있는것 같습니다.

Tacking Fashion Mnist with a CNN
부분에

`In[28] :
model.compile(loss="sparse_categorical_crossentropy", optimizer="nadam", metrics=["accuracy"])

history = model.fit(X_train, y_train, epochs=10, validation_data=(X_valid, y_valid)

끝에 괄호가 하나 빠진것 같습니다.

score = model.evaluate(X_test, y_test)
X_new = X_test[:10] # pretend we have new images
y_pred = model.predict(X_new)`

도커 허브 이미지를 이용하여 주피터 노트북 서버 실행하기 관련 질문

아래 주소에서 핸즈온 머신러닝 (2판)을 지원하는 도커 이미지를 다운받았습니다.

https://hub.docker.com/r/ageron/handson-ml2

그런데 아래 명령어를 실행하면 컨테이너의 터미널로 바로 들어갑니다.

docker run -it --rm -v $PWD:/home/devel/handson-ml2 -p 8888:8888 ageron/handson-ml2:latest

그리고 주피터 노트북 서버는 어디서 도는지 알 수가 없습니다. http://localhost:8888 에서 실행될 것으로 기대했는데 그렇지 않습니다.

어떻게 하면 주피터 노트북 서버를 돌릴 수 있을까요?

2장 코드가 실행이 안됩니다. 도움 부탁드립니다.

2.6.1 훈련 세트에서 훈련하고 평가하기
해당 파트 첫 코드를 실행하면 다음과 같은 에러와 함께 진행이 되지 않고
지식이 없다보니 이리저리 알아봐도 해결이 안되어 여기에 도움 부탁드립니다!!
(예제코드를 돌려봐도 똑같네요, 주피터노트북에서 실행했습니다)

= code

from sklearn.linear_model import LinearRegression

lin_reg = LinearRegression()
lin_reg.fit(housing_prepared, housing_labels)

= error

LinAlgError Traceback (most recent call last)
in
2
3 lin_reg = LinearRegression()
----> 4 lin_reg.fit(housing_prepared, housing_labels)

~\Anaconda3\envs\env_yanko\lib\site-packages\sklearn\linear_model_base.py in fit(self, X, y, sample_weight)
567 else:
568 self.coef_, self.residues, self.rank, self.singular_ =
--> 569 linalg.lstsq(X, y)
570 self.coef_ = self.coef_.T
571

~\Anaconda3\envs\env_yanko\lib\site-packages\scipy\linalg\basic.py in lstsq(a, b, cond, overwrite_a, overwrite_b, check_finite, lapack_driver)
1219 cond, False, False)
1220 if info > 0:
-> 1221 raise LinAlgError("SVD did not converge in Linear Least Squares")
1222 if info < 0:
1223 raise ValueError('illegal value in %d-th argument of internal %s'

LinAlgError: SVD did not converge in Linear Least Squares

도커 허브 이미지를 이용하여 주피터 노트북 서버 실행하기 관련 질문

아래 주소에서 핸즈온 머신러닝 (2판)을 지원하는 도커 이미지를 다운받았습니다.

https://hub.docker.com/r/ageron/handson-ml2

그런데 아래 명령어를 실행하면 컨테이너의 터미널로 바로 들어갑니다.

docker run -it --rm -v $PWD:/home/devel/handson-ml2 -p 8888:8888 ageron/handson-ml2:latest

그리고 주피터 노트북 서버는 어디서 도는지 알 수가 없습니다. http://localhost:8888 에서 실행될 것으로 기대했는데 그렇지 않습니다.

어떻게 하면 주피터 노트북 서버를 돌릴 수 있을까요?

2장 상관관계

Line 38에 있는
corr_matrix = housing.corr() 부분에서
housing data에 ocean_proximity 부분이 포함되어 있어,
string 데이터에 의해 pd.corr() 메서드 오류가 발생합니다.

정상적으로 작동하나요? 제가 책의 예시코드 중 데이터 전 처리를 잘못한 것인지 훑어봤는데, 딱히 누락된 부분이 없어서 확인차 말씀드립니다.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.