전체 글

모르는 내용 및 아는 내용 모두 꼼꼼히 복습하여 익숙해지는 그 날까지 꾸준히 공부하겠습니다.
AI/Deep Learning

합성곱 신경망(CNN) - 합성곱층, 폴링층, 스트라이드, 커널,필터 알아보기

합성곱 신경망 (CNN) 고수준 뉴런이 이웃한 저수준 뉴런의 출력에 기반한다는 아이디어에서 착안된 신경망 모델이며 각 뉴런은 이전 층에 있는 몇 개의 뉴런에만 연결됩니다. 이미지나 영상을 처리하는데 유용한 신경망입니다. 이미지 전체를 한 번에 계산하는 것이 아닌 이미지의 국소적 부분을 계산함으로써 시간과 자원을 절약하여 이미지의 세밀한 부분까지 분석할 수 있는 신경망입니다. 1) 합성곱 신경망의 구조 입력층 합성곱층 폴링층 완전연결층 출력층 첫 번째 합성곱층의 뉴런은 입력 이미지의 모든 픽셀에 연결되는 것이 아닌 합성곱 층 뉴런의 수용장 안에 있는 픽셀에만 연결됩니다. 두 번째 합성곱층에 있는 각 뉴런은 첫 번째층의 작은 사각 영역 안에 위치한 뉴런에 연결됩니다. 이런 구조는 네트워크가 첫번째 은닉층에서..

AI/Deep Learning

[딥러닝] 학습 모델 저장하기 / 불러오기 / 보기

딥러닝 모델을 사용하려면 매번 계속 몇 시간 동안 학습시켜야 되는지 궁금할 것입니다. 딥러닝 모델을 학습시킨다는 의미는 딥러닝 모델이 가지고 있는 뉴런들의 가중치를 조정하는 것을 의미합니다. 그러므로, 우리는 모델 구성과 가중치를 저장만 해놓으면, 필요할 때 언제든 저장한 모델의 구성과 가중치를 불러와서 사용할 수 있습니다. 개요 학습 모델(아키텍처, 가중치) 저장하기 저장한 모델 불러오기 모델 형태 보기 학습 모델 가중치만 저장하기 (1) 학습 모델 저장하기 ( model.save("*****.h5") ) 모델은 크게 모델 '아키텍처'와 모델 '가중치'로 구성됩니다. 아키텍처는 모델이 어떤 층으로 어떻게 쌓여있는지에 대한 모델 구성이 정의되어 있습니다. 가중치(weights)는 처음에는 임의의 값으로 ..

AI/Deep Learning

[딥러닝] 모델 성능 최적화하기 (배치정규화, 드롭아웃, 조기종료)

"딥러닝 텐서플로 교과서" 책을 공부하고 정리한 것입니다. 감사합니다. 합성곱 신경망(CNN) - 합성곱층, 폴링층, 스트라이드, 커널,필터 알아보기 합성곱 신경망(CNN) - 합성곱층, 폴링층, 스트라이드, 커널,필터 알아보기 합성곱 신경망 (CNN) 고수준 뉴런이 이웃한 저수준 뉴런의 출력에 기반한다는 아이디어에서 착안된 신경망 모델이며 각 뉴런은 이전 층에 있는 몇 개의 뉴런에만 연결됩니다. 이미지나 영상을 처 kylo8.tistory.com [딥러닝] RNN 순환신경만이란, [딥러닝] RNN 순환신경만이란, "딥러닝 텐서플로 교과서" 책을 공부하고 정리한 것입니다. 감사합니다. 개요 RNN이란 무엇인가 RNN의 유형 RNN의 구조 RNN 계층과 셀 (1) RNN (Recurrent Neural N..

AI/Deep Learning

[딥러닝] RNN 순환신경만이란,

"딥러닝 텐서플로 교과서" 책을 공부하고 정리한 것입니다. 감사합니다. 개요 RNN이란 무엇인가 RNN의 유형 RNN의 구조 RNN 계층과 셀 (1) RNN (Recurrent Neural Network) 시간적으로 연속성이 있는 데이터를 처리하려고 고안된 인공 신견망이다. 이전 은닉층이 현재 은닉층의 입력이 되면서 반복되는 순환구조를 가진다. 기존 네크워크와 달리 '기억'을 가지고 있으며, 새로운 입력이 네트워크로 들어올 때마다 기억은 조금씩 수정된다. 대표적으로 자연어 처리에서 사용이 되고 있다. 첫 번째 입력이 들어오면 첫 번째 기억(h1)이 만들어진다. 두 번째 입력이 들어오면 기존 기억(h1)과 새로운 입력을 참고하여 새 기억(h2)을 만든다. RNN은 외부 입력과 자신의 이전 상태를 입력받아 ..

AI/Machine Learning

[Numpy] - expand_dims 차원 추가하기

딥러닝을 공부하면서 모델의 입력 (차원) 형태와 이미지의 형태(차원)를 맞춰주기 위해서 expand_dims() 메서드를 정리하려고 합니다. expand_dims() * 배열의 모양을 확장한다 = 배열의 차원을 추가한다. (1) Test 용 1차원 넘파이 배열 생성하기 import numpy as np x = np.array([2,4]) print(x) print(x.shape) numpy 배열의 shape 출력 결과에서 다음 순서대로 축의 순서가 정해진다. (첫 번째 축, 두 번째 축, 세 번째 축)!! (2) 첫 번째 축에 차원 추가하기. expand_dims np.newaxis y = np.expand_dims(x, axis=0) print(y) print(y.shape) print('\n') y ..

Python/Pandas

[Pandas] 데이터 프레임 재구조화 (stack, unstack)

pandas의 stack() 함수와 unstack() 함수로 데이터 프레임을 재구조화할 수 있습니다. 간단하게 설명하자면, stack은 컬럼을 인덱스로 가져오는 것이며, unstack은 (지정한 level)의 인덱스를 컬럼으로 보내는 역할을 합니다. import pandas as pd df = pd.DataFrame({'col_1':[1,2,3],'col_2':[4,5,6]}, index=['a','b','c']) df Stack stack은 컬럼을 인덱스로 보내는 역할을 합니다. 아래를 보시면 인덱스에 해당하는 각 컬럼을 차례대로 쌓는 다고 생각하시면 됩니다. stack = df.stack() stack df 데이터프레임의 인덱스 level 0인 a,b,c에 해당하는 컬럼을 차례대로 쌓아 올린다. st..

Python/Pandas

[Pandas] dtype 기반 열 선택 / select_dtypes

DataFrame.select_dtypes(include=None, exclude=None) [1] select_dtypes 함수는 열에 포함된 데이터들을 type 기준으로 인덱싱 할 수 있도록 합니다. select_dtypes(include=None, exclude=None) 형태를 가지며, include에 넣은 값은 포함하고, exclude에 넣은 값을 제외한 열을 데이터 프레임 형태로 반환합니다. [2] 사용법 기본 사용법 * include 및 exclude는 비어있거나 겹치면 안 되며(에러 발생), 스칼라나 list형태의 입력값이 가능합니다. 자료형 1. 숫자형(numeric)은 np.number 또는 'number' 2. 문자형(str)은 'object' 3. 날짜,시간(datetimes)을 선..

Python/PYTHON

[Python] 파이썬 웹 크롤링 - BeautifulSoup 사용 방법 및 활용하기

BeautifulSoup란 무엇인가, HTML, XML, JSON 등 파일의 구문을 분석하는 모듈. 웹 페이지를 표현하는 HTML을 분석하기 위해 사용되며, 원하는 데이터를 가져오기 쉽게 비슷한 분류의 데이터별로 나누어 주는 파이썬 라이브러리이다. ( 보통 html정보를 가져오는 urllib.request.urlopen() 모듈과 함께 사용되곤 합니다 ) BeautifulSoup 설치 pip install bs4 [1] BeautifulSoup 시작하기 from bs4 import BeautifulSoup from urllib.request import urlopen # 크롤링할 페이지를 page 변수에 저장 page = "https://movie.naver.com/movie/sdb/rank/rmovie..

kylo
오늘도 열심히 - BE