본문 바로가기

IT To do and To was

22년 4월 8일_딥러닝(+ 흐아 금요일이다..!!

728x90
반응형

금요일[오늘 과연 회식을 할 것인가..!]

1. 금일 딥러닝 필기 작성

2. 정처기 필기 작성 

 

 

1. 금일 딥러닝

새로운 가상환경 만들기

 conda create -n tf-env python=3.8
 conda activate tf-env
 conda install numpy=1.19
 conda install pandas
 conda install matplotlib
 conda install scikit-learn
 conda install -c conda-forge tensorflow (ㅜㅜ)
 conda install jupyter
 conda install seaborn

 

import os, shutil


os :  운영체제에서 지원하는 서비스를 제공하는 모듈
shutil : 파일이나 디렉터리의 추가 및 생성을 지원하는 모듈

#class마다 12500/ t와 다르게 할 거임
original_dataset_dir = 'dataset/train'

base_dir = 'dataset/cats_and_dogs' #기준
if not os.path.exists(base_dir):
    os.mkdir(base_dir)
#학습용
train_dir = os.path.join(base_dir, 'train') #train이라는 폴더 생성
os.mkdir(train_dir)
test_dir = os.path.join(base_dir, 'test')
os.mkdir(test_dir)

train_cats_dir = os.path.join(train_dir, 'cats') #train_dir 및에 cats라고 만듬
os.mkdir(train_cats_dir)

train_dogs_dir = os.path.join(train_dir, 'dogs') #train_dir 및에 cats라고 만듬
os.mkdir(train_dogs_dir)

#테스트용
test_cats_dir = os.path.join(test_dir, 'cats') #train_dir 및에 cats라고 만듬
os.mkdir(test_cats_dir)

test_dogs_dir = os.path.join(test_dir, 'dogs') #train_dir 및에 cats라고 만듬
os.mkdir(test_dogs_dir)

 

이미지를 나눈 테스트용 훈련용이미지 len값 확인

 

from tensorflow.keras import models, layers

model = models.Sequential()
model.add(layers.Conv2D(32, (3,3), activation='relu', input_shape=(150,150, 3))) #아웃풋 32 커널 3,3 
model.add(layers.MaxPooling2D((2)))
model.add(layers.Conv2D(64, (3,3), activation='relu'))
model.add(layers.MaxPooling2D((2)))
model.add(layers.Conv2D(128, (3,3), activation='relu')) #출력을 128개
model.add(layers.MaxPooling2D((2)))
model.add(layers.Conv2D(128, (3,3), activation='relu')) 
model.add(layers.MaxPooling2D((2)))
model.add(layers.Flatten()) #Dense를 집어넣는다는 것
model.add(layers.Dropout(0.5))
model.add(layers.Dense(512, activation='relu')) #출력을 512
model.add(layers.Dense(1, activation='sigmoid')) #2진분류니까 시그모이드
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

loss : 손실함수 모델이 최적화에 사용되는 목적함수

optimizer : 정규화기

metrics : 기준 문자열 식별자, 또는 사용자 정의 기준함수가 될 수 있음

 

각 이미지마다 사이즈와 레이블이 다르기에 각각 지정을 해줘야 함

from tensorflow.keras.preprocessing.image import ImageDataGenerator

train_datagen = ImageDataGenerator(rescale=1./255)
test_datagen = ImageDataGenerator(rescale=1./255)

#사이즈와 레이블문제를 해결
train_generator = train_datagen.flow_from_directory(train_dir, 
                                                   target_size=(150,150), #사이즈 지정
                                                   batch_size=20,# batch_size 미리 설정 // 버전 올리면서 달라짐
                                                   class_mode='binary') #레이블 지정

validation_generator = test_datagen.flow_from_directory(test_dir, 
                                                   target_size=(150,150), #사이즈 지정
                                                   batch_size=20,
                                                   class_mode='binary') #레이블 지정

import ImageDataGenerator : 이미지를 가지고 오는 모듈

작은 입력값을 처리하는 것이므로 rescale를 255에서 0~1사이 값으로 설정

reacale : 크기 재조정 인수

target_size : 추후에 설계할 모델에 들어갈 인풋 이미지 사이즈 중 Width, Height를 입력

batch_size : 이미지 데이터 원본 소스에서 한 번에 얼마만큼의 이미지 데이터를 가져올 것인지

class_mode

'categorical' : 'categorical_crossentropy' 처럼 멀티-레이블 클래스인데, 원-핫 인코딩된 형태

'sparse' : 'sparse_categorical_crossentropy' 처럼 멀티-레이블 클래스인데, 레이블 인코딩된 형태

'binary' : 'binary_crossentropy' 처럼 이진 분류 클래스로, 0 또는 1인 형태 /출처 :https://techblog-history-younghunjo1.tistory.com/261

history = model.fit(train_generator, steps_per_epoch=steps_train, epochs=30,
                   validation_data=validation_generator, validation_steps=steps_validation) # 한 에포크에 몇번 스탭을 돌아야하나,

시각화

import matplotlib.pyplot as plt
acc = history.history['accuracy']
val_acc = history.history['val_accuracy']
loss = history.history['loss']
val_loss = history.history['val_loss']

epochs = range(len(acc))

plt.plot(epochs, acc, 'ro', label='Training acc')
plt.plot(epochs, val_acc, 'b', label='Validation acc')
plt.title('Training and validation accuracy')
plt.legend()

plt.figure()

plt.plot(epochs, loss, 'ro', label='Training loss')
plt.plot(epochs, val_loss, 'b', label='Validation loss')
plt.title('Training and validation loss')
plt.legend()

plt.show()

2. 정처기 필기

 

아직 1과목도 못끝냄... 주말에는 185쪽까지 할 수 있었음 하는 바램에 표시를 해놓았다.

 

헷갈리는것만 필기합니다.

 

인터페이스의 기본원칙 

유효성 : 사용자의목적을 정확하고, 완벽하게 달성해야한다.

유연성 : 요구사항을 최대한 수용, 실수를 최소화

 

사이트 맵 : 사이트의 전체구조를 한눈에 알아볼 수 있도록 구조 형태로 만드는 것

 UI설계 도구 : 와이어프레임, 목업, 스토리 보드, 프로토타입[페이퍼, 디지털], 유스케이스

인터뷰는 리서치 전에 해야함

성숙성 : 결함으로 인한 고장을 피해갈 수 있는 능력

 

실행차  : 실행 기능이 달라서 발생

평가차 : 실행 결과가 달라서 발생

 

유지보수성 中 시험성 : 소프트 웨어의 변경이 검증 될 수 있는 능력

 

UI시나리오 문서작성 원칙

 

인터렉션 순서, 분기, 조건, 루프 등을 명시

 

UI - 사용성, 접근성, 편의성

UX - 만족, 감정 [주관성, 전황성, 총체성]

 

시스템측면_변경용이성_소프트웨어가 처음 설계 목표와 다른 하드웨어나 플랫폼에서도 동작할 수 있도록 구현하는 것

 

감성공학 요소기술

- 기반기술 : 설계에 적용할 인간의 특성을 파악

- 구현기술 : 특성에 맞는 인터페이스를 구현

- 응용기술 : 인간에 맞는지 파악하여 새로운 감성을 만듦

 

아키텍처 측면

개념적 무결성/ 전체 시스템과 시스템을 이루는 구성요소들 간의 일관성을 유지하는 것

정확성, 완결성/ 요구사항을 구현시키기 위해 발생하는 제약사항들을 모두 충족시키는 것

구축 가능성/ 모듈단위로 구분된 시스템을 적절하게 분배하여 유연하게 일정을 변경할 수 있도록 하는 것

기타 속성/ 변경성 , 시험성, 적응성, 일치성, 대체성 등이 있다.

 

다형성 : 메시지에 의해 객체(클래스)가 연산을 수행하게 될 때 하나의 메시지에 대해 각각의 객체(클래스)가 가지고 있는 고유한 방법(특성)으로 응답할 수 있는 능력

 

//yesterday wished to today list

. 정처기 진도 많이 나가보기 👎

 

tomorrow wish list_✔

. 좋은 하루 보내기

728x90
반응형