월 22,000원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
안녕하세요 교수님
'Dense Layer로 Fashion MNIST 예측 모델 구현하기 - 이미지 데이터 확인 및 사전 데이터 처리' 강의코드중 궁금한 내용이 있어 질문드립니다.train_images[0, :, :] 코드를 사용하셨는데 train_images[0]이 아닌 이미지 인덱스에 전체 행과 열을 불러오는 부분을 추가하신 특별한 이유가 있을까요?
- 해결됨딥러닝 CNN 완벽 가이드 - Fundamental 편
가중치 초기화(Weight Initialization) 질문입니다.
안녕하세요 교수님, CNN 강의와 같은 좋은 수업 감사드립니다.다름이 아니라 가중치 초기화를 공부하다가 생긴 궁금증에 질문 글을 달아봅니다.교수님께서 강의 하실 때 평균이 0, 표준 편차 1인 표준 정규 분포에서 Weight 초기화시 sigmoid 출력이 대부분 0과 1로 수렴하신다고 하셨는데이렇게 되는 이유가 평균이 0, 표준 편차가 1인 표준 정규 분포에서 Weight를 초기화하면 처음에 Weight값이 너무 작거나 혹은 너무 큰 값들로 배정되기 때문에 저렇게 되는 걸까요?즉, Weight값이 -1 ~ 1까지의 값들 중 임의로 배정되기 때문에 그런건가요?반대로 Sigmoid 출력이 대부분 0.5로 수렴하는 경우에는 -0.01 ~ 0.01중 Weight 값이 결정되기 때문에 그런걸까요?
- 해결됨딥러닝 CNN 완벽 가이드 - Fundamental 편
테스트 데이터셋 predict의 'NoneType' object has no attribute 'shape' 오류
안녕하세요.테스트 데이터셋을 predict하는 부분에서 오류가 나서 질문드립니다. test_path = test_df['path'].values test_ds = Plant_Dataset(image_filenames=test_path, labels=None, image_size=IMAGE_SIZE, batch_size=BATCH_SIZE, augmentor=None, shuffle=False, pre_func=xcp_preprocess_input) preds = xcp_model_01.predict(test_ds) --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) Cell In[40], line 7 3 test_path = test_df['path'].values 4 test_ds = Plant_Dataset(image_filenames=test_path, labels=None, image_size=IMAGE_SIZE, batch_size=BATCH_SIZE, 5 augmentor=None, shuffle=False, pre_func=xcp_preprocess_input) ----> 7 preds = xcp_model_01.predict(test_ds) File /opt/conda/lib/python3.10/site-packages/keras/src/utils/traceback_utils.py:123, in filter_traceback.<locals>.error_handler(*args, **kwargs) 120 filtered_tb = _process_traceback_frames(e.__traceback__) 121 # To get the full stack trace, call: 122 # `keras.config.disable_traceback_filtering()` --> 123 raise e.with_traceback(filtered_tb) from None 124 finally: 125 del filtered_tb File /opt/conda/lib/python3.10/site-packages/tree/__init__.py:435, in map_structure(func, *structures, **kwargs) 432 for other in structures[1:]: 433 assert_same_structure(structures[0], other, check_types=check_types) 434 return unflatten_as(structures[0], --> 435 [func(*args) for args in zip(*map(flatten, structures))]) File /opt/conda/lib/python3.10/site-packages/tree/__init__.py:435, in <listcomp>(.0) 432 for other in structures[1:]: 433 assert_same_structure(structures[0], other, check_types=check_types) 434 return unflatten_as(structures[0], --> 435 [func(*args) for args in zip(*map(flatten, structures))]) AttributeError: 'NoneType' object has no attribute 'shape' test_image_batch, test_label_batch = next(iter(test_ds))print(test_image_batch.shape, test_label_batch)의 출력이 (32, 224, 224, 3) Nonehistory.history['val_auc']의 출력이 [0.9417113065719604, 0.9647012948989868, 0.9738287925720215, 0.9816075563430786, 0.9799161553382874, 0.9804703593254089, 0.9877450466156006, 0.9854006767272949, 0.9803326725959778, 0.9843235611915588]학습도 완료됐고 Plant_Dataset도 제대로 작동하고 있습니다.AttributeError:'NoneType' object has no attribute 'shape'으로 어느 부분이 문제가 되는지 질문드립니다.
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
학습이 이상하게 됩니다.
당장 문의드리는 것은 CIFAR10_Pretained이지만 다른 예제를 실행해도 같은 에러가 납니다. tr_data_len = tr_images.shape[0]val_data_len = val_images.shape[0]history = vgg_model.fit(flow_tr_gen, epochs=40,steps_per_epoch=int(np.ceil(tr_data_len/BATCH_SIZE)),validation_data=flow_val_gen,validation_steps=int(np.ceil(val_data_len/BATCH_SIZE)),callbacks=[rlr_cb, ely_cb])) 이 셀을 실행시키면, 이런 식으로 홀수만 학습이 되고 짝수는 학습이 안 됩니다.이 학습시킨 것을 그래프로 나타내면 0이 되었다가 정상적으로 되었다가 반복을 하네요.예전에 예제를 실행시켰을때는 이런 오류가 없었는데 버전이 업데이트되면서 안되는것 같습니다.Adam 함수에 매개변수 lr=을 입력할 때도 에러가 나서 learning_rate=로 변경해야하는 식으로 자잘한 문제도 있습니다.많은 예제에서 같은 오류가 나는 것을 보아 업데이트된 캐글 커널 버전에 맞춰서 코드를 전체적으로 수정하셔야할 필요가 있을것 같습니다.감사합니다. Epoch 1/40 /opt/conda/lib/python3.10/site-packages/keras/src/trainers/data_adapters/py_dataset_adapter.py:122: UserWarning: Your `PyDataset` class should call `super().__init__(**kwargs)` in its constructor. `**kwargs` can include `workers`, `use_multiprocessing`, `max_queue_size`. Do not pass these arguments to `fit()`, as they will be ignored. self._warn_if_super_not_called() 10/665 ━━━━━━━━━━━━━━━━━━━━ 12s 19ms/step - accuracy: 0.0987 - loss: 3.5617WARNING: All log messages before absl::InitializeLog() is called are written to STDERR I0000 00:00:1709598886.339819 103 device_compiler.h:186] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process. 665/665 ━━━━━━━━━━━━━━━━━━━━ 31s 30ms/step - accuracy: 0.1981 - loss: 2.1133 - val_accuracy: 0.4116 - val_loss: 1.5764 Epoch 2/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 0s 28us/step - accuracy: 0.0000e+00 - loss: 0.0000e+00 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00 Epoch 3/40 7/665 ━━━━━━━━━━━━━━━━━━━━ 12s 18ms/step - accuracy: 0.4141 - loss: 1.5560/opt/conda/lib/python3.10/contextlib.py:153: UserWarning: Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches. You may need to use the `.repeat()` function when building your dataset. self.gen.throw(typ, value, traceback) 665/665 ━━━━━━━━━━━━━━━━━━━━ 13s 19ms/step - accuracy: 0.4451 - loss: 1.4449 - val_accuracy: 0.5769 - val_loss: 1.2619 Epoch 4/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 0s 16us/step - accuracy: 0.0000e+00 - loss: 0.0000e+00 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00 Epoch 5/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 13s 19ms/step - accuracy: 0.5782 - loss: 1.1673 - val_accuracy: 0.5975 - val_loss: 1.1887 Epoch 6/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 0s 17us/step - accuracy: 0.0000e+00 - loss: 0.0000e+00 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00 Epoch 7/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 13s 19ms/step - accuracy: 0.6474 - loss: 1.0090 - val_accuracy: 0.6819 - val_loss: 1.1508 Epoch 8/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 0s 17us/step - accuracy: 0.0000e+00 - loss: 0.0000e+00 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00 Epoch 9/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 13s 19ms/step - accuracy: 0.6889 - loss: 0.8978 - val_accuracy: 0.6689 - val_loss: 1.2804 Epoch 10/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 0s 16us/step - accuracy: 0.0000e+00 - loss: 0.0000e+00 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00 Epoch 11/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 13s 19ms/step - accuracy: 0.7189 - loss: 0.8345 - val_accuracy: 0.7216 - val_loss: 1.0568 Epoch 12/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 0s 17us/step - accuracy: 0.0000e+00 - loss: 0.0000e+00 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00 Epoch 13/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 13s 19ms/step - accuracy: 0.7289 - loss: 0.8169 - val_accuracy: 0.7328 - val_loss: 1.3400 Epoch 14/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 0s 17us/step - accuracy: 0.0000e+00 - loss: 0.0000e+00 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00 Epoch 15/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 13s 19ms/step - accuracy: 0.7646 - loss: 0.7047 - val_accuracy: 0.6892 - val_loss: 1.1569 Epoch 16/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 0s 16us/step - accuracy: 0.0000e+00 - loss: 0.0000e+00 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00 Epoch 17/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 13s 19ms/step - accuracy: 0.7645 - loss: 0.7083 - val_accuracy: 0.7511 - val_loss: 0.9342 Epoch 18/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 0s 16us/step - accuracy: 0.0000e+00 - loss: 0.0000e+00 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00 Epoch 19/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 13s 19ms/step - accuracy: 0.7857 - loss: 0.6478 - val_accuracy: 0.7740 - val_loss: 0.9626 Epoch 20/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 0s 16us/step - accuracy: 0.0000e+00 - loss: 0.0000e+00 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00 Epoch 21/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 13s 19ms/step - accuracy: 0.8012 - loss: 0.6048 - val_accuracy: 0.7763 - val_loss: 0.7990 Epoch 22/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 0s 16us/step - accuracy: 0.0000e+00 - loss: 0.0000e+00 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00 Epoch 23/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 13s 19ms/step - accuracy: 0.8056 - loss: 0.5998 - val_accuracy: 0.7719 - val_loss: 0.8663 Epoch 24/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 0s 16us/step - accuracy: 0.0000e+00 - loss: 0.0000e+00 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00 Epoch 25/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 13s 19ms/step - accuracy: 0.8196 - loss: 0.5483 - val_accuracy: 0.7731 - val_loss: 0.8920 Epoch 26/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 0s 16us/step - accuracy: 0.0000e+00 - loss: 0.0000e+00 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00 Epoch 27/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 13s 19ms/step - accuracy: 0.8313 - loss: 0.5199 - val_accuracy: 0.7960 - val_loss: 0.8204 Epoch 28/40 665/665 ━━━━━━━━━━━━━━━━━━━━ 0s 16us/step - accuracy: 0.0000e+00 - loss: 0.0000e+00 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00 Epoch 29/40
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
boston import가 안됩니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 강의 내용을 질문할 경우 몇분 몇초의 내용에 대한 것인지 반드시 기재 부탁드립니다. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 버전 다운그레이드를 진행햐였음에도 안됩니다 이게 안되면 나머지도 안되서 진행이 안됩니다 ㅜㅜ
- 해결됨딥러닝 CNN 완벽 가이드 - Fundamental 편
Boston 주택 가격에서, scailing 안하면 값이 발산합니다.
안녕하세요.여러가지를 해보던 중, boston 주택가격 실습에서 MinMaxSclaer를 적용하지 않고, 한번 그대로 값을 넣어 gradient descent를 수행하니, loss function이 발산해버리는 현상을 발견했습니다. 혹시 이러한 결과가 나온 원인이 무었일까요?? 어쨌든 gradient descent는 값의 범위에 상관 없이 항상 loss function의 값이 작아지는 방향으로 이동하는 것으로 이해했는데, feature들 간의 값의 차이가 있어서 loss function의 값이 발산하는것이 왜 그렇게 되는지 이해가 잘 되지 않아 질문 드립니다.!!
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
보스턴 집값 예제가 실행이 안 됩니다.
/opt/conda/lib/python3.10/site-packages/sklearn/utils/deprecation.py:87: FutureWarning: Function load_boston is deprecated; `load_boston` is deprecated in 1.0 and will be removed in 1.2. The Boston housing prices dataset has an ethical problem. You can refer to the documentation of this function for further details. The scikit-learn maintainers therefore strongly discourage the use of this dataset unless the purpose of the code is to study and educate about ethical issues in data science and machine learning. In this special case, you can fetch the dataset from the original source:: import pandas as pd import numpy as np data_url = "http://lib.stat.cmu.edu/datasets/boston" raw_df = pd.read_csv(data_url, sep="\s+", skiprows=22, header=None) data = np.hstack([raw_df.values[::2, :], raw_df.values[1::2, :2]]) target = raw_df.values[1::2, 2] Alternative datasets include the California housing dataset (i.e. :func:`~sklearn.datasets.fetch_california_housing`) and the Ames housing dataset. You can load the datasets as follows:: from sklearn.datasets import fetch_california_housing housing = fetch_california_housing() for the California housing dataset and:: from sklearn.datasets import fetch_openml housing = fetch_openml(name="house_prices", as_frame=True) for the Ames housing dataset. warnings.warn(msg, category=FutureWarning)예전에 어떤 사람이 같은 내용으로 문의를 한 적이 있습니다. 그런데 답변의 내용대로 해도 해결이 안 됩니다. 사이킷런 버전 1.0.2로 바꾸고 run -> restart & clear cell output 누르고 다시 들어가도 이런 오류가 나옵니다.어떻게 하면 좋을까요?
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
gradient descent 코드 구현시 편미분으로 변환하는 부분 질문드립니다!
안녕하세요!!강의를 듣는 도중 궁금한것이 생겼습니다이전 영상에서 손실함수의 편미분을 구해서 weight를 업데이트 하는 방식의 설명중에 공식의 오른쪽 부분 xi * (실제값i - 예측값i) 부분이 코드 상에 구현된것이이부분 인거 같은데 해당 코드에서, 예를 들면 w1_update 변수 부분에 공식의 xi 를 곱하는 부분이 빠진게 아닌가 싶은 의문이 듭니다!! 제가 못찾고 있는건지...아니면 어디서 따로 구현이 된것인지 여쭤봅니다!! 강의 감사합니다^^
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
학습 데이터 가져오는 부분과 배치사이즈, iteration 에 관해 질문드립니다!!
추가로 질문 드리고 싶습니다1.SGD시 1건의 데이터는 모든 피쳐를 포함한 1건의 데이터(RM, LSTAT의 경우 2개의 W를 가지는 2개의 열방향 데이터)인것인가요? 맞다면 1000번의 iteration시 동일한 데이터로 1000번 학습을 하는건가요? 아니면 열방향으로 순차대로 학습을 하는건가요?(예를 들면 600개의 데이터가 있다고 하면 1번부터 600번까지...)2.미니배치에서 Batch size만큼 학습데이터를 순차적으로 학습시킬때, Batch size는 순서대로(600개의 데이터가 있다면 1~30번, 31~60번...이렇게 정직하게 가져 오는건가요?? 아니면 1, 5, 8, 11, 50, 100 과 같이 랜덤하게 선택하되, Batch size만 지키는 것인가요??진짜 감사드립니다...강의 계속 보고 있습니다!!
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
손실함수의 편미분에서 w의 갯수가 많을경우
안녕하세요!!다시 복습하는 중입니다...!!강의를 들으면서 궁금한건데 강의에서는 손실함수의 편미분과업데이트시 w0(바이어스)과 w1(기울기,가중치)를 예시로 들면서 설명을 해주셨는데 만약 바이어스를 제외한 w1(기울기, 가중치)의 갯수가 여러개일경우(w2, w3, w4)편미분하는 절차는 어떻게 되나요??w1만 편미분하고 업데이트 하구, w2만 편미분하고 업데이트 하는...방식인지 아니면 w1, w2, w3를 한번에? 편미분 해서 나온 값으로 업데이트 하는것인지 궁금합니다! 좋은 강의 감사합니다^^
- 해결됨딥러닝 CNN 완벽 가이드 - Fundamental 편
CIFAIR10 CNN 모델 실습 중 모델 평가에 대한 질문
안녕하세요 선생님. 강의중 12분 20초쯤에 손실값과 정확도가 둘 다 높은 상태로 보이는데, 정확도가 높으면 손실값이 낮아야하는거 아닌가요? 아무리 테스트 데이터에 대한 평가라고 해도 정확도에 비해 손실값이 너무 높은게 좀 이상해보입니다. 학습할 때는 손실값을 낮게, 정확도는 높게라는 개념이 모델을 평가할 때는 조금 다른건가요?
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
VGG_Practice 실습예제 accuracy 계산값이 이상합니다.
현재 오픈된 커리큘럽 강의 소개 및 실습 환경에서 주피터 노트북 에제파일 다운로드 받아서 실행하였습니다.이상한 점은 VGG16 모델 생성 후 학습 및 성능 검증 cell 실행결과 cal_accuracy가 0.1정도 나오는데 값이 너무 낮은 것 같습니다.동영상 강죄에서 교수님이 보여주신 결과는 0.85 정도 나오는데 을 원인을 모르겠습니다.예제파일상의 어떤 부분이 문제인지 확인부탁드립니다. 감사합니다.
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
섹션 8. keras sequence 기반의 dataset 관련 질문입니다.
안녕하세요 교수님!keras sequence 기반 dataset에서 label을 one-hot encoding을 해주는 과정에서,pd.get_dummies와 pd.factorize를 소개해주셨는데.. 만약 강의에서와 달리 pd.factorize로 인코딩하지 않고, pd.get_dummies로 인코딩했다면 모델 생성 부분에서 마지막 layer에output = Dense(2, activation='softmax')(x)로 바꿔준다면 동일한 로직인 것이 맞겠죠..? 또 다른 질문으로는, 이진 분류라면 아무래도 softmax 보다는 sigmoid를 사용하는 편이 더 나은 것인지 궁금합니다! (혹시 성능적으로 더 좋을까요...?)좋은 강의 정말 감사합니다!!
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
사전 훈련 모델 VGG16을 이용하여 CIFAR10 학습 모델 구현 성능
CIFAR10_Pretrained_01에서 성능이 매우 낮게 나와서 공유된 코드 복붙도 해보고 껐다 켜보기도 했지만 결과가 이상합니다. 뭐가 문제일까요?
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
ImageDataGenerator 질문
Generator랑Augmentation이랑 같은건가요? 코드에서 아래 부분을 이미지데이터에서의 fit_transform이랑 비슷하다고 생각하면 되나요? # ImageDataGenerator 적용. fit()후 flow()로 image batch를 넣어주어야 함.data_generator.fit(image_batch)data_gen_iter = data_generator.flow(image_batch)# ImageDataGenerator를 동작하기 위해서는 next()등으로 iteration을 호출해야함.aug_image_batch = next(data_gen_iter)아래 코드를 실행하기 전에 type이 float일 때랑 코드를 실행해서 int일 때랑 값은 큰 차이가 없는데 왜 show_image 했을 때 그림이 다르게 나오는건가요? aug_image = aug_image.astype('int')저는 width_shift 했을 때 위아래로 되는 거 같은데... 교수님 코드랑 결과가 다릅니다.. 교수님 코드처럼 width_shift는 좌우 이동으로 생각하면 되나요?
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
캐글 너무 길게 출력됩니다.
첫번째 사진처럼 너무 길게 출력되어 밑에 사진처럼 변경하고 싶은데 어떻게 변경하나요? 플랫폼은 캐글 사용중입니다.
- 해결됨딥러닝 CNN 완벽 가이드 - Fundamental 편
섹션6 CIFAR10 imshow() 시각화 문제
안녕하세요 교수님!5강 시작부분에서 get_preprocessed_data의 scaling 파라미터 값을 False로 하셨는데, 그러면 픽셀값을 255로 나누지 않는 것인데 이렇게 하면 다음과 같은 흰색 배경만 뜨더라구요..그래서 구글링을 해보니까 plt.imshow() 함수가 0 ~ 1 사이의 float형이나 0 ~ 255 사이의 int형만 가능하다고 해서 다음과 같이 바꾸었는데 제대로 출력되더라구요..!... def get_preprocessed_data(images, labels, scaling=True): if scaling: # 직접 scaling을 한다고 했을때? images = np.array(images/255.0, dtype=np.float32) else: images = np.array(images, dtype=np.int32) # 이 부분을 수정했습니다. oh_labels = np.array(labels, dtype=np.float32) return images, oh_labels def get_preprocessed_ohe(images, labels): images,labels = get_preprocessed_data(images, labels, scaling=False) # OHE oh_labels = to_categorical(labels) return images, oh_labels ...교수님 코드랑 다른 부분이 없는데 저는 흰 배경으로만 나오고, 저렇게 설정해야지만 올바르게 나오는 점이 이상해서 여쭤보고자 합니다ㅠㅠ! 혹시 몰라서 해당 부분 전체 코드 올리겠습니다!from tensorflow.keras.datasets import cifar10 from tensorflow.keras.utils import to_categorical from sklearn.model_selection import train_test_split # seed 설정 def set_random_seed(seed_value): np.random.seed(seed_value) python_random.seed(seed_value) tf.random.set_seed(seed_value) def get_preprocessed_data(images, labels, scaling=True): if scaling: # 직접 scaling을 한다고 했을때? images = np.array(images/255.0, dtype=np.float32) else: images = np.array(images, dtype=np.float32) oh_labels = np.array(labels, dtype=np.float32) return images, oh_labels def get_preprocessed_ohe(images, labels): images,labels = get_preprocessed_data(images, labels, scaling=False) # OHE oh_labels = to_categorical(labels) return images, oh_labels def get_train_valid_test_set(train_images, train_labels, test_images, test_labels, valid_size=0.15, random_state=2023): train_images, train_ohe_labels = get_preprocessed_ohe(train_images, train_labels) test_images, test_ohe_labels = get_preprocessed_ohe(test_images, test_labels) train_images, valid_images, train_ohe_labels, valid_ohe_labels = train_test_split(train_images, train_ohe_labels, test_size=valid_size, random_state=random_state) return train_images, train_ohe_labels, valid_images, valid_ohe_labels, test_images, test_ohe_labelsset_random_seed(2023) (train_images, train_labels), (test_images, test_labels) = cifar10.load_data() print(train_images.shape, train_labels.shape, test_images.shape, test_labels.shape) train_images, train_ohe_labels, valid_images, valid_ohe_labels, test_images, test_ohe_labels = get_train_valid_test_set(train_images, train_labels, test_images, test_labels, valid_size=0.15, random_state=2023) print(train_images.shape, train_ohe_labels.shape, valid_images.shape, valid_ohe_labels.shape, test_images.shape, test_ohe_labels.shape)NAMES = np.array(['Airplane', 'Automobile', 'Bird', 'Cat', 'Deer', 'Dog', 'Frog', 'Horse', 'Ship', 'Truck']) def show_images(images, labels, ncols=8): figure, axs = plt.subplots(nrows=1, ncols=ncols, figsize=(22, 6)) for i in range(ncols): axs[i].imshow(images[i]) label = labels[i].squeeze() axs[i].set_title(NAMES[int(label)]) show_images(train_images[:8], train_labels[:8], ncols=8) show_images(train_images[8:16], train_labels[8:16], ncols=8) show_images(train_images[16:24], train_labels[16:24], ncols=8)감사합니다!
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
from tensorflow.keras.models import Sequential
제목처럼 Sequenital을 import해서 쓰는 것과 keras.Sequential을 쓰는 것의 차이가 있나요? models의 차이가 있는지 궁금합니다. 실행했을 땐 똑같긴한데.. 굳이 왜 다른지 궁금합니다. Dense(1, input_shape = (2, ), ....) 에서 왜 2가 앞에 쓰이는 건가요?? 앞은 보통 행인데...ㅠㅠkeras가 행은 몇개인지 몰라도 되는데 피쳐는 몇개인지 알아야 하는건가요?
- 해결됨딥러닝 CNN 완벽 가이드 - Fundamental 편
save_weights_only=True로 했을 때 load_model 오류
안녕하세요 교수님!ModelCheckpoint에서 ModelCheckpoint('best_model.h5', save_weights_only=True, monitor='val_loss', save_best_only=True, mode='min')save_weights_only = True로 했을 때 아래와 같은 load_model 에러가 나더라구요..그래서 구글링을 해봤는데 저렇게 설정할 경우에 모델 아키텍처가 저장이 안되어서 load_model을 할 수 없다고 json 파일로 모델을 따로 저장하고 나중에 json 모델을 다시 불러오는 방법을 사용하라고 나왔습니다. 강의 중에도 언급해주셨지만 save_weights_only = True로 했을 때의 이점이 있을까요..? False로 했을 때 교수님께서 모델을 불러올 때 충돌..? 비슷한 것이 난다고 하셨는데 좀 더 세부적인 내용을 알고 싶습니다..!만약에 True로 설정했다면 매번 json으로 모델을 저장하는 과정을 거쳐야 하는 것인지 궁금합니다!model.save() 함수도 있던데 이거는 modelcheckpoint와 달리 학습 중에 저장은 안되는 것 같아서요.. 항상 감사합니다 교수님!!
- 미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
정보가 손실되는 이유가 궁금합니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 강의 내용을 질문할 경우 몇분 몇초의 내용에 대한 것인지 반드시 기재 부탁드립니다. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.강의에서 conv2d연산을 진행한 후에 softmax연산을 해주기 위해 3차원 데이터를 flatten시켜줬는데 flatten시켜준 후에 바로 softmax함수를 적용시키면 어떤 이유로 정보가 손실되는 이유에 대해서 궁금합니다.dense를 하나 추가하고 softmax를 적용하는 것과 dense없이 flatten후 softmax를 적용하는 것의 차이점에 대해서 궁금증이 생긴 것 같습니다!