1 데이터 처리
데이터 입럭은 3가지 형태로 이루어진다.
- 넘파이 배열. 일반적인 데이터과학에서 자주 사용되는 형태.
- 텐서플로우의 데이터셋 오브젝트. 성능행상에 도움.
- - 이미지 파일을 데이터셋화 : tf.keras.preprocessing.image_dataset_from_directory
- - 텍스트 파일을 데이터셋화 : tf.keras.preprocessing.text_dataset_from_directory
- - CSV 파일을 데이터셋화 : tf.data.experimental.make_csv_dataset
- 파이썬 제너레이터.
https://keras.io/getting_started/intro_to_keras_for_engineers/
위 링크에 정규화, 텍스트 배열 등의 전략이 소개되어 있다.
1.1 텐서플로우 데이터셋 오브젝트 예시
의도
|
설명
|
방법
|
이미지
|
|
dataset = keras.preprocessing.image_dataset_from_directory(
'path/to/main_directory', batch_size=64, image_size=(200, 200))
# For demonstration, iterate over the batches yielded by the dataset.
for data, labels in dataset:
print(data.shape) # (64, 200, 200, 3)
print(data.dtype) # float32
print(labels.shape) # (64,)
print(labels.dtype) # int32
|
텍스트
|
|
dataset = keras.preprocessing.text_dataset_from_directory(
'path/to/main_directory', batch_size=64)
# For demonstration, iterate over the batches yielded by the dataset.
for data, labels in dataset:
print(data.shape) # (64,)
print(data.dtype) # string
print(labels.shape) # (64,)
print(labels.dtype) # int32
|
CSV
|
|
# Set Feature_B as label column
dataset = tf.data.experimental.make_csv_dataset(
filename, batch_size=2, label_name="Feature_B")
iterator = ds.as_numpy_iterator()
print(next(iterator))
# prints (features, labels) tuple:
# (OrderedDict([('Feature_A', array([1, 2], dtype=int32))]),
# array([b'a', b'b'], dtype=object))
|
2 사용
2.1 데이터 사전작업
의도
|
설명
|
방법
|
정규화
|
일반적으로 데이터는 0~1 사이로 정규화한다.
|
|
csv 가져오기
|
csv를 넘파이 배열화 해야 한다.
|
import pandas
csv = pd.read_csv("경로.csv") # 판다스를 이용하여 불러온다.
x = csv[['열1', '열2']].as_matrix() # 넘파이배열로 바꾸어 x에 담는다.
|
2.1.1 신경망 모델 제작
의도
|
설명
|
방법
|
모듈 불러오기
|
layers : 각 계층을 만드는 모듈.
models : 각 레이어들을 연결하여 신경망모델을 만든 후 컴파일하고 학습시키는 역할.
|
from keras import layers, models
|
신경망 디자인
|
ANN에 필요한 파라미터를 정해준다.
인수
|
설명
|
Nin
|
입력계층 노드 수
|
Nh
|
은닉계층 노드 수
|
number_of_class
|
출력값이 가질 클래스 수
|
Nout
|
출력노드 수
|
|
|
모델링
|
다양한 방법으로 모델링.
|
|
2.2 기타 활용
2.2.1 샘플데이터
의도
|
설명
|
방법
|
손글씨 샘플
|
mnist의 샘플데이터를 가져온다.
|
from keras.datasets import mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
|
|
|
|