금요일[오늘 과연 회식을 할 것인가..!]
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) |
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_✔
. 좋은 하루 보내기
'IT To do and To was' 카테고리의 다른 글
22년 4월 10일_정처기 공부 (0) | 2022.04.10 |
---|---|
22년 4월 9일_센트럴파크 & 본가 만두전골 (+ 정처기 공부 (0) | 2022.04.09 |
22년 4월 7일_금일 수업 및 코드 공유, 정처기 진도..가 안나간다.ㅜ (+프로토 타입 제작 툴 (0) | 2022.04.07 |
22년 4월 6일_분류문제 (+ ㅎㅅ언니와 산책 , numget (0) | 2022.04.06 |
22년 4월 5일_단원평가 후 딥러닝 시작_ㅎㅅ언니가 사진찍어줬따ㅎㅎ (0) | 2022.04.05 |