본문 바로가기

생성

Convolutional AE 【8】최근 AutoEncoder 응용 모델 이해하고 사용하기 / Convolutional AE Convolutional AE 이번에는 CNN과 AE과 결합된 모델인 CAE를 실습해보자 이미지에서 강점을 보인 CNN이기 때문에 성능은 좋아졌다. 바로 CAE로 생성된 mnist 이미지부터 보겠습니다. 위에 있는 이미지는 원본이미지고 아래는 CAE로 나온 예측 이미지다. 손실이 거의 발생하지 않은 상태의 이미지인 것을 확인 할 수가 있다. 높은 성능을 보이기에 책에는 따로 실습을 담지 않았지만 실습파일에는 있으니 시간이 있다면 실습을 하는걸 추천한다. 실습은 노이즈가 섞인 이미지 데이터를 CAE로 학습하는 것을 할 것이다. try: %tensorflow_version 2.x" except Exception: .. 더보기
Deep AE를 이용한 가짜 이미지 생성 【7】AutoEncoder 기본 다지기 / 이미지 생성 실습으로 익히는 AE 이번에는 Deep AE를 배워보자 기존에 AE에서 순환신경망을 여러 개 쌓아 깊게 변형된 모델이다 기존코드에서 사용했던 모듈들을 그대로 사용하기에 전처리까지는 생략을 한다(이전 글 참고). Hidden_input1 = 512 Hidden_input2 = 256 Hidden_input3 = 128 Hidden_input4 = 64 Hidden_input5 = 32 input_layer = layers.Input(shape=(784,)) Encoding = layers.Dense(Hidden_input1)(input_layer) Encoding = layers.Dense(Hidden_input2)(Encoding) Encoding .. 더보기
[웹크롤링] 크롤링 데이터 저장 - 중복되지 않는 폴더 생성 방법 (현재 날짜 / 시간 사용) 대량의 이미지를 크롤링하고 저장하는 경우, 중간에 다시 시작해버리면 덮어쓰기가 돼버려서 이전에 저장했던 이미지가 사라질 수 있는데요, 이러한 경우 어떻게 해야 할까요? 다시 시작할 때마다 폴더의 이름을 바꾸기엔 비효율적일 수 있습니다. 따라서 이에 대한 해결책은 바로 폴더명을 현재 날짜, 시간이 들어가게 만들면 되는데요, 이러한 이름으로 폴더를 만들게 되면 절대 폴더가 중복되지 않습니다. 한편, 현재 시간을 측정하기 위해 time 라이브러리를 사용해야 하는데요, 아래 코드를 보면서 현재 날짜, 시간이 들어간 폴더 생성 방법에 대해 알아보도록 하겠습니다. 먼저, 전체 코드를 보도록 하겠습니다. import time basic_dir = "c:\\test\\" #저장할 기본경로 n = time.localti.. 더보기
[데이터분석] 데이터프레임 : 칼럼(열) 간단하게 추가하는 방법 데이터프레임에서 새로운 행이나 칼럼(열)을 추가하는 방법은 다양한데요, 이번에는 간단하게 칼럼(열)을 추가하는 방법에 대해서 설명하도록 하겠습니다. - 동일한 값이 들어있는 새로운 칼럼 추가하기 새로운 칼럼을 만들고, 그 칼럼에 모두 동일한 값을 넣어야 하는 경우가 있는데요, 우선 아래와 같은 데이터프레임이 있다고 가정해보겠습니다. itemcountpricerating 0coffee130004.5 1juice540003.0 2ade250004.0 3milk130002.5 4tea340003.0 5water210004.5 여기에 새로운 칼럼 'category'를 만들고 싶고, 데이터가 모두 'drink' 인 칼럼을 만들고 싶다면 아래와 같이 코드를 간단하게 입력하면 됩니다. df['category'] = .. 더보기
[데이터 분석] 빈 데이터 프레임(dataframe) 만드는 방법 pandas 라이브러리로 데이터프레임을 만들 수 있는데요, 기존의 데이터를 이용하여 데이터프레임으로 나타내는 방법과, 처음부터 빈 데이터프레임을 만들어서 데이터를 추가하는 방식으로 만들 수 있습니다. 이번 글에서는 빈 데이터프레임을 만드는 방법에 대해서 살펴보도록 하겠습니다. 1. 빈 데이터프레임 만들기 데이터 프레임을 만드는 방법은 간단한데요, pd.DataFrame() 함수 안에 인덱스 설정과 칼럼의 이름을 지정해주면 됩니다. 예를 들어, 10개의 행과 'A', 'B', 'C' 라는 칼럼을 가진 데이터프레임 'df' 를 만들어보도록 하겠습니다. import pandas as pd df = pd.DataFrame(index=range(0,10),columns=['A','B','C']) 위와 같이 ind.. 더보기
[데이터분석] 데이터 프레임 - 새로운 행 추가하기 - loc[ ] 데이터 프레임으로 데이터 분석을 할 때, 필요에 의해서 새로운 행을 추가해야 할 수 있는데요, 이때 iloc 또는 loc 함수를 사용하여 새로운 행을 추가할 수 있습니다. 먼저, 다음과 같은 데이터프레임이 있다고 가정해보겠습니다. tempitemcountpricerating 0hotcoffee130004.5 1icejuice540003.0 2iceade250004.0 3hotmilk130002.5 4hottea340003.0 5icewater210004.5 위 데이터프레임에서 새로운 행을 추가하고 싶다면, loc[ ] 함수를 사용하면 되는데요, df.loc['인덱스번호 또는 이름'] = [ 데이터 리스트 ] 와 같이 코드를 입력하면 됩니다. 따라서 만약 맨 마지막에 ['ice', 'coke', 3, 20.. 더보기
[파이썬] 주피터 노트북(jupyter notebook) : 특정 셀 위/아래에 새로운 셀 생성 단축키 주피터 노트북을 사용하다 보면, 특정 셀 위에 또는 아래에 새로운 셀을 생성해서 코드를 입력해야 하는 경우가 있을 수 있는데요, 이러한 경우처럼 특정 셀 위/아래에 새로운 셀을 생성하는 단축키에 대해서 알아보도록 하겠습니다. 1. edit mode / command mode 새로운 셀을 생성하는 단축키에 대해 알아보기 앞서, 주피터 노트북에는 edit mode와 command mode가 있습니다. 먼저, edit mode는 왼쪽에 초록색 상태의 cell로 enter를 눌러 코드를 입력할 있는 상태를 말합니다. 반면 command mode는 esc를 누르거나 셀을 마우스로 클릭해서 파란색의 cell이 된 상태를 말합니다. 2. 새로운 셀 생성하기 : command mode >> 'a' 또는 'b' 특정 위.. 더보기
[파이썬] 랜덤 난수 생성하기 - numpy : rand(), randn() numpy 라이브러리를 사용하면 랜덤 난수를 생성할 수 있는데요, 이때 .random.randn() 또는 .random.rand() 함수를 사용하여 난수를 생성할 수 있습니다. 각 함수의 사용법과 차이는 아래 코드를 보면서 설명하도록 하겠습니다. 1. random.rand() random.rand() 함수는 0과 1 사이의 난수를 발생시키는 함수로, 만약 5 x 3 배열의 난수로 이루어진 배열을 만들고 싶으면 다음과 같이 코드를 입력하면 됩니다. import numpy as np arr1 = np.random.rand(5,3) print(arr1) [[0.69317654 0.07164175 0.40273234] [0.87184723 0.91572746 0.45297751] [0.63078801 0.958.. 더보기
[파이썬] jupyter notebook에서 폴더 생성하기 - mkdir, makedirs 쥬피터 노트북에서 파일을 저장할 때, 폴더를 새로 생성하고 저장해야될 때가 있는데요, 폴더를 만들어주는 함수가 바로 OS 라이브러리의 mkdir(), makedirs() 함수입니다. 각 함수의 사용방법과 차이는 아래 코드를 보면서 살펴보도록 하겠습니다. 1. mkdir() mkdir() 함수는 폴더를 생성해주는 함수로, os.mkdir("경로+새폴더명") 의 형식으로 입력을 해주면 되는데요, 예를 들어 현재 c드라이브에 'test1'이라는 폴더가 있는데, 여기에 'test2' 라는 폴더를 생성하고 싶을 때 다음과 같이 입력하면 됩니다. import os os.mkdir("c:\\test1\\test2") 위와 같이 입력하고 실행하면, test1 폴더에 test2 폴더가 생성되었음을 확인할 수 있습니다. .. 더보기