파이썬 기초부터 시작하는 딥러닝 영상 인식 바이블 Online강의를 50일간 수강했다.
파이썬 기초 강의 14강
데이터 분석 강의 32강
머신러닝 강의 25강
딥러닝 영상처리 강의 39강
자율주행 영상인식 강의 29강
총 139강으로 이루어져 있고, 한 강의에 최대 40분을 넘기지 않아 총 57시간 25분이 소요되는 구성이다.
이렇게 정리해보니 사실 그렇게 긴 강의도 아닌데 아직 완강을 하지 못했다.
직장 다니면서 강의 듣는게 뭐 그리 어렵겠냐고 쉽게 생각했는데, 막상 내가 강의를 들을 일이 생기고 여건이 따라주지 않으니 이런 결과가 생긴 것 같다.
50일간 하루도 빠지지 않고 한시간 정도씩 들었으면 아마 완강이 가능하지 않았을까 하고 생각한다.

그동안 강의를 들으면서 생성한 Colab 파일이 이만큼 쌓였다.
쌓여있는 기록을 보면 그래도 내가 그동안 놀지는 않았구나 하는 생각은 든다.
비록 투자한 시간이 아주 길지는 않지만 내 하루의 단 몇 분이라도 강의를 듣는데 썼음에 의의를 두고싶다.
파이썬 기초강의
파이썬 기초강의 부분은 가장 따라가기 쉬웠던 부분이다.
이 부분을 하루에 여러 강 학습하였으면 더 좋았을 거라고 생각한다.
이전에도 파이썬을 공부한 적은 있지만, 따로 강의를 듣거나 교재가 있었던 것이 아니라 인터넷에서 이부분 저부분을 따라하는 수준이었고 그나마도 안 쓰는 동안 많이 잊어버렸었다.
그래서 기본 문법을 다시 정리하기 좋았다.
다만, 가끔 강사님 코드대로 따라 적어도 에러가 발생하는 경우가 있어서 그 때에는 알아서 구글링을 통해 에러를 수정해야했다.


⑴ stationfares.json 파일의 위치를 찾지 못해서 에러가 발생
** 에러 메세지 내용
FileNotFoundError: [Errno 2] No such file or directory: 'stationfares.json'
처음에는 “c:/Users/MSI/Downloads/파이썬 강의 자료/stationfares.json” 로 썼으나 에러(/는 //두개를 써야함)
→”c:\Users\MSI\Downloads\파이썬 강의 자료\stationfares.json”로 바꾸어도 에러가 남
결국 아래와 같이 바꿨을 때 정확한 패스 인식이 가능했음.
→r'c:\Users\MSI\Downloads\파이썬 강의 자료\stationfares.json'
⑵ 인코딩 에러
with open('stationfares.json', 'r')으로 인코딩 에러가 발생
** 에러 메세지 내용
UnicodeDecodeError: 'cp949' codec can't decode byte 0xad in position 22: illegal multibyte sequence
아래 코드로 수정 후 정상작동 함
with open(r'c:\Users\MSI\Downloads\파이썬 강의 자료\stationfares.json', 'rt', encoding='UTF8')
데이터 분석 강의
데이터 분석강의는 Matplotlib라이브러리를 통해 그래프로 데이터를 시각화하는 파트였다.
Colab에서 한글 인코딩이 안되서 강사님이 폰트 설치 방법부터 셋팅하는 방법까지 다 알려주셨는데,
처음에는 그 순서 그대로 다 따라해도 인코딩 에러가 나서 강의가 끝나고 나서도 계속 구글에서 에러 원인이랑 해결방법을 검색했던 것이 생각난다.
그리고 그렇게 했는데도 해결이 안되서 다음 날 수강 때 강사님 방법대로 다시 따라했는데 에러가 안 났다.
아마 인덴트 에러였거나 내가 처음에 실행했던 순서가 문제가 있었던게 아닐까 생각한다.


이 파트에서부터 루틴처럼 쓰이는 코드가 있다.
1. Mount Drive(Google Drive 연결)
from google.colab import drive
drive.mount('/gdrive')
2. Korean Encoding
!sudo apt-get install -y fonts-nanum
!sudo fc-cache -fv
!rm ~/.cache/matplotlib -rf
** Runtime Restart → 필요한 코드 재시작
3. Matplotlib
# Import pyplot as a alias 'plt'
import matplotlib.pyplot as plt
# 폰트를 Nanum폰트로 지정
plt.rc('font', family='NanumBarunGothic')
4. Load Data
# Load a file under "data" folder
file = "/gdrive/My Drive/data/data_2021.csv"
import pandas as pd
data = pd.read_csv(file)
이 파트에서 좋았던 점이 좀 많았다.
- 데이터 셋 작성 방법
- 차트의 5대 기법
- 데이터 시각화
- API사용 방법



이 파트에서 여러 그래프를 구현해 보는 것은 재미있는 경험이었다.
다만 강사님이 강의를 녹화한 시점과 실제로 강의를 듣는 시점의 시간차가 있어서 데이터 결과 값이 다르니 내가 강사님을 따라 구현한 것이 정확한지 확인할 수 없다는 부분은 아쉬웠다.
또한 각 그래프의 특성에 맞는 데이터가 따로 있기 때문에 그 특성을 잘 나타내기 힘든 데이터를 이용하는 것 보다는 각 그래프마다 사용할 특정 데이터를 제공하여 해당 데이터를 데이터셋으로 가공하는 강의가 더 좋지 않을까하고 생각해봤다.
머신러닝 강의

인공지능, 머신러닝, 딥러닝의 개념을 정리하고 머신러닝의 기본을 배울 수 있는 강의이다.
머신러닝 강의에서부터는 한 강의 시간이 짧아도 그 강의 시간 내에 이해가 다 안 되서 강의를 계속 다시 돌려봤던 것 같다. 강의 내내 토끼와 거북이 이야기를 통해 머신러닝에 대해 알려주시는데 최대한 쉽게 설명하려고 하시는게 느껴졌다. 하지만 한 번만 들어서는 잘 이해가 안 가서 아마 완강 후에도 2, 3번은 더 들어야 할 것 같다.
머신러닝 강의에서부터 Tensorflow를 사용하기 시작한다.
기본적으로 아래 코드의 틀에서 크게 벗어나지 않는 선에서 조금씩 필요한 부분을 변경해서 강의를 하신다.
| * 텐서플로 import import tensorflow as tf * 변수 생성(미분 계수) learning_rate = 0.01 learning_epochs = 100 * modeling : 레이어를 1개만 사용(Keras) model = tf.keras.models.Sequential() model.add(tf.keras.layers.Dense(1, input_dim=1)) # Gradient Descent : Optimizer 최적화 # Stochastic gradient descent(SGD) Optimizer sgd = tf.keras.optimizers.SGD(learning_rate=learning_rate) # Squared Error # Mean Squared Error (MSE) loss function mse = tf.keras.losses.mean_squared_error # Gradient descent 최적화 방식과, Squared Error방식을 사용하여 모델링 model.compile(loss=mse, optimizer=sgd) * model 확인 # print summary of the model to the terminal model.summary() * 텐서플로 학습 Model Training : 거북이 # The tortoise learning t_history = model.fit(t_xdata, t_ydata, epochs=learning_epochs) ** learning_epochs : 총 몇 번을 학습할 것인지를 나타냄 * 예상하기(10시간) result = model.predict([10]) print(result) |
모델링 할 때 사용하는 최적화 방법과 Squared Error방식에 대해서 여러 번 설명해주시는데 내 강의 이해력의 문제로 아직 정확하게 이해하지 못한 것 같다.
딥러닝 영상처리 강의
딥러닝 영상처리 강의의 첫 부분은 MNIST의 데이터를 이용하여 이미지 속의 숫자를 인식하는 걸로 시작한다.
그리고 Keras, ReLu를 좀 더 자세하게 다룬다.
필요한 라이브러리 인포트
# TensorFlow and tf.keras
import tensorflow as tf
from tensorflow import keras
# Helper libraries
import numpy as np
import matplotlib.pyplot as plt
import math
상수 선언
# Define Constants
batch_size = 128
epochs = 10000
num_classes = 10
MNIST에서 학습용(6만개), 테스트용(1만개) 이미지 셋(이미지, 결과 값 페어) 다운로드
# Download MNIST dataset.
mnist = keras.datasets.mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
Tensorflow에서 계산하기 쉽도록 값을 0에서 1사이의 값으로 변환 계산한다.
** 각 이미지에는 0~ 255까지의 채도 값이 들어있다.
# Normalize the input image so that each pixel value is between 0 to 1.
train_images = train_images / 255.0
test_images = test_images / 255.0
모델 생성
** 모델을 견고하게 변경, 은닉층을 보강, Convolutional Neural Network를 이용해서 강화
# Define the model architecture with CNN
model = keras.Sequential([
keras.layers.Flatten(input_shape=(28,28)),
# Hidden Layers
# keras.layers.Dense(128, activation=tf.nn.relu),
keras.layers.Reshape(target_shape=(28, 28, 1)),
keras.layers.Conv2D(filters=32, kernel_size=(3, 3), activation=tf.nn.relu),
keras.layers.Conv2D(filters=64, kernel_size=(3, 3), activation=tf.nn.relu),
keras.layers.MaxPooling2D(pool_size=(2, 2)),
keras.layers.Dropout(0.25),
keras.layers.Flatten(input_shape=(28, 28)),
keras.layers.Dense(128, activation=tf.nn.relu),
keras.layers.Dropout(0.5),
keras.layers.Dense(num_classes, activation='softmax')
])
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
모델 체크포인트 객체 생성
# Save the best model as digits_model.h5
filepath = 'digits_model.h5'
modelCheckpoint = tf.keras.callbacks.ModelCheckpoint(filepath=filepath, save_best_only=True)
Early Stopping 작성 : 모니터링 대상은 validation loss값이다.
# Define a callback to monitor val_loss
monitorEarlyStop = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience=5)
[참고]
https://www.tensorflow.org/api_docs/python/tf/keras/callbacks/EarlyStopping
** monitor : 모니터 대상
** patience : local minimum이 있을 수 있기 때문에, 정해 놓은 횟수 만큼은 기다리는 것이다.
학습 : callback 설정
history = model.fit(train_images, train_labels,
validation_data=(test_images, test_labels),
epochs=epochs, batch_size=batch_size,
callbacks=[modelCheckpoint, monitorEarlyStop])


자율주행 영상 강의
아직 딥러닝 영상처리 강의 부분을 수강하는 중이라 자율주행 영상강의에 대한 정보가 없다.
아마 완강을 하게되면 이 후기 부분을 수정하는 형식이 되지 않을까한다.
모든 수강생의 수준이 같지 않기때문에 100프로 만족하는 강의를 찾는 것은 어려울 것이라고 생각한다.
하지만 이번 파이썬 기초부터 시작하는 딥러닝 영상 인식 바이블 Online강의는 100프로는 아니라도 80%는 만족하는 강의였다. 필요한 부분을 두번, 세번 반복해서 들으면 더 좋은 강의인 것 같다.
그리고 한 강의에 할당해야하는 시간이 길어도 30분을 넘기지 않아서 부담스럽지 않다.
이후 되도록 빨리 남은 강의를 완강하는게 목표이다.
완강 후에는 자율주행 영상 처리에 대해 얕게나마 지식이 쌓여있기를 바란다.
기재: 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
'패스트캠퍼스 챌린지' 카테고리의 다른 글
| 패스트캠퍼스 챌린지 50일차 (0) | 2022.03.14 |
|---|---|
| 패스트캠퍼스 챌린지 49일차 (0) | 2022.03.13 |
| 패스트캠퍼스 챌린지 48일차 (0) | 2022.03.12 |
| 패스트캠퍼스 챌린지 47일차 (0) | 2022.03.11 |
| 패스트캠퍼스 챌린지 46일차 (0) | 2022.03.10 |


























































































