file 다루기, Linear Classification

Nam Eun-Ji·2021년 1월 11일
0

utf-8

Unicode와 UTF-8 간단히 이해하기



파일

# 파일 열기
f = open("hello.txt","w")

# 파일 닫기(작업이 끝나면 닫아주는 것 필수)
f.close()

# write
f.write("안녕")
 
# read
with open("hello.txt", "r") as f:
  print(f.read())

with를 통해 open된 객체는 with문이 종료될 때 자동으로 close되는 것이 보장된다.

f.메소드

메소드내용
f.read()파일을 읽는다.
f.readline()파일을 한 줄씩 읽는다.
f.readlines()파일 안의 모든 줄을 읽어 그 값을 리스트로 반환한다.
f.write(str)파일에 쓴다. 문자열 타입을 인자로 받는다.
f.writelines(str)파일에 인자를 한 줄씩 쓴다.
f.close()파일을 닫는다.
f.seek(offset)새 파일의 위치를 찾는다.

메소드

메소드내용
sys.path현재 폴더와 파이썬 모듈들이 저장되어 있는 위치를 리스트 형태로 반환
sys.path.append()자신이 만든 모듈의 경로를 append 함수를 이용해서 추가함으로써 추가한 디렉토리에 있는 파이썬 모듈을 불러와 사용할 수 있다.
os.chdir()디렉토리 위치 변경
os.getcwd()현재 자신의 디렉터리 위치를 반환
os.mkdir()디렉토리 생성
os.rmdir()디렉토리 삭제 (단, 디렉토리가 비어 있을 경우)
glob.glob()해당 경로 안의 디렉토리나 파일들을 리스트 형태로 반환
os.path.join()경로(path)를 병합하여 새 경로 생성
os.listdir()디렉토리 안의 파일 및 서브 디렉토리 리스트
os.path.exists()파일 혹은 디렉토리의 경로 존재 여부 확인
os.path.isfile()파일 경로의 존재 여부 확인
os.path.isdir()디렉토리 경로의 존재 여부 확인
os.path.getsize()파일의 크기 확인





Image Classification - Linear

knn vs linear 간단히!

knn
가까이에 있는 훈련이미지를 근거로 해서 예측한다.

  • k : 몇번째로 가까운 데이터까지 살펴볼 것인가
  • Distanse metric : 각 좌표가 주변 좌표와 비교하는 과정에서 어떤 방식으로 할 것인가

linear
f(x, W) = Wx + b
이미지를 strecth(3차원shape를 1차원shape로)한 뒤 weight matrix와 곱한 뒤 bias를 더하면 각 클래스에 대한 최종 score가 나오는데, 가장 높은 것의 클래스의 라벨을 반환한다.

  • 각 층이 모여 신경망 구성


Q

bias trick 왜 쓰는걸까?

  • 행렬곱은 행과 열을 맞춰줘야하기 때문에 아래 이미지에서 xix_{i} 마지막에 1이 들어간 것을 볼 수 있다.
  • 다른 머신러닝이랑 합칠 때 편해서
  • 나중에 그 결과에서 bias를 분리하기 편해서
  • 다양한 유형의 구축에 대해 생각할 때 알아 두는 것이 좋다.

같은 이미지의 회전에 따라 스코어는 어떻게 변할까?

같은 이미지지만 이미지를 회전시키면 원래 이미지와 답이 달라질 수 있다.

  • 손실되는 부분은 검정색으로.
  • 이를 방지하기 위해 픽셀값을 조금씩 변경한다던가, 회전시킨 것을 넣는 등의 방법으로 학습시킨다. → Data augmentation





기타

dropout = keras.layers.Dropout()  # 얼만큼 사용할 것인지 인자로.
batchnorm = keras.layers.BatchNormalization()
  • dropout은 dense 뒤에 와야한다. 그래야 끌 것이 있으니까.
  • flatten 뒤에 dropout이 와도 상관없다. dropout은 weights를 꺼주는 것이기 때문에.
profile
한 줄 소개가 자연스러워지는 그날까지

0개의 댓글