전체 글
-
Kernel died with exit code 1073741845기타 2021. 8. 26. 13:11
주로 VSCODE에서 jupyter notebook extention을 활용해서 데이터 분석을 하는데, 언제부터인가 "Kernel died with exit code 1073741845" 에러가 뜨면서 커널이 안 열리는 것이었다. 아무리 저 키워드로 찾아보고 재설치를 해봐도 고칠 수가 없었다 ... 그래서 터미널에서 직접 jupyter notebook을 실행시켜보았는데, 그것도 작동하지 않더라 그런데 에러코드가 달라져서 달라진 코드로 검색해보고 정답을 찾았다. ipykernel의 jupyter lab과의 충돌 때문이었다! 그래서 다음과 같은 코드를 적어주니 해결 pip uninstall pyzmq pip install pyzmq==19.0.2 나같은 사람이 없도록 공유한다.. 진짜 짜증이었다. --- 아..
-
(AI Hub) 한국어 글자체 데이터셋 파이썬으로 불러오기기타 2021. 8. 1. 22:50
0. Intro 간단한 ocr 모형이 필요한데, 대부분의 ocr 엔진이 유료이고 Tesseract는 인식률이 너무 안 좋았다. 그래서 직접 만드려고 한국어 글자 데이터셋을 검색하니 AI Hub에서 무려 무료로! 방대한 한국어 글자체 이미지를 배포하고 있었다. 손글씨 370만장, 인쇄체 280만장, 실사 이미지 10만장이나 되며, 그 용량은 압축 상태가 200Gb가 넘는다. 조금 짜증스러운 점은.. 다운 받기 위한 프로그램을 설치해야 하고, 이어받기(?) 기능이 없어, 한 번 프로그램을 잘못 종료하면 처음부터 다시 받아야 한다. (내가 당했다..) 인쇄체에서 지원되는 글자체(폰트)는 다음과 같은 50개나 된다. 전체 데이터는 다음과 같이 크게 손글씨, 인쇄체, 실사 데이터셋으로 구분돼있다. 각각의 데이터셋..
-
pandas DataFrame join merge concat 연산 속도 비교데이터분석 2021. 7. 30. 01:00
0. Intro pandas DataFrame을 join해야하는 경우는 매우매우 빈번하다. 그래서 join 방법들을 모두 정리해볼까 한다. # 준비한 데이터는 다음과 같음 print(raw.shape) # (9142946, 21) print(address.shape) # (1396049, 11) 1. 단일 column 기준 join 한 개의 column을 기준으로 join하는 방법들과 성능은 다음과 같음 결론: join 할 때 index를 바로 지정하지 말자;; # pd.merge 사용 %%timeit merge_on = pd.merge(raw, address, how='left', left_on='CI', right_on='CI') # 42.1 s ± 178 ms per loop (mean ± std...
-
[PostgreSQL] 기초 내용 정리 1DB 2021. 4. 19. 23:58
PostgreSQL을 사용하며 놓치기 쉬운 기초 내용을 정리해봅니다. 작은따옴표 자체를 데이터로 표시하기 위해서는 작은따옴표를 두 번 적는다 e.g., 'let''s go' : let's go 특정 컬럼만 지정해서 값 넣기 INSERT INTO 테이블명 (컬럼1, ..., 컬럼n) VALUES (값1, ..., 값n) 한 번에 값 여러 개 넣기 INSERT INTO 테이블명 VALUES (값1 ~ 값n), (값1 ~ 값n), ..., (값1 ~ 값n); 조회 시작 행 지정 OFFSET 1: 두 번 째 행부터 조회 다르다 비교 연산자: 단일 값 결과 서브쿼리는 조건문 등에 활용 가능 e.g., WHERE 'aa' = (SELECT v1 FROM t1 WHERE tid = 2) 특정 컬럼 수정하기 UPDAT..
-
StarGAN v2paper review 2020. 3. 11. 00:52
0. Abstract 좋은 image-to-image translation 모델은 다음과 같은 특성을 가져야 합니다. 1) 생성하는 이미지의 다양성 2) 여러 domains에 대한 scalability 아직 두 가지를 모두 만족하는 모델이 없지만 StaarGAN v2는 가능하다고 합니다. 실험 결과도 base line models보다 훨씬 뛰어나다고 합니다. 1. Introduction Image-to-image translation(IIT)은 서로 다른 visual domains간의 mapping 학습을 목표로 합니다. 여기에서 'domain'은 시각적으로 구분되는 카테고리를 의미합니다. 또한, 각각의 이미지는 unique appearance를 가지고 있는데 이것은 'style'입니다. 예를들어 성별이..
-
[tensorflow 2.0] optimizer learning rate schedule데이터분석 2019. 12. 9. 23:15
섬세한 모형 튜닝을 위해서는 learning rate를 조금씩 줄여주는 작업이 필요하다. 특정 iteration마다 optimizer instance를 새로 생성해줘도 되지만, tensorflow에서는 optimizer의 learning rate scheduling이 가능하다. 가장 많이 쓰이는 ExponentialDecay는 계속 같은 비율로 learning rate를 감소시켜준다. 사용 예시는 아래와 같다. initial_learning_rate = 0.1 lr_schedule = keras.optimizers.schedules.ExponentialDecay( initial_learning_rate, decay_steps=100000, decay_rate=0.96, staircase=True) opt..
-
[tensorflow 2.0] tf.pad데이터분석 2019. 12. 2. 01:12
이미지 전처리 중 shape 통일을 위해서 원본 이미지에 zero-padding을 해야할 경우가 있다. 그 때 손쉽게 패팅하는 방법이 tf.pad이다. tf.pad( tensor, paddings, mode='CONSTANT', constant_values=0, name=None ) 사용 방법은 padding만 신경쓰면 어렵지 않다. padding은 shape이 D x 2인 텐서이며, [D, 0]은 D차원(rank) 앞의 패딩 [D, 1]은 D차원 뒤의 패딩을 의미한다. 예를 들어, input tensor의 Shape이 (Batch_size, height, width, channel) 라면, 다음과 같이 height와 width에만 padding을 추가할 수 있다. padding = [[0, 0], [6..
-
[tensorflow 2.0] tf.data.Dataset enumerate데이터분석 2019. 12. 1. 17:55
tf.data.Dataset API를 보면 enumerate() 함수가 있다. 배치마다의 값 확인을 위해서 아래 함수를 쓰면 되겠구나! 했는데.. # NOTE: The following examples use `{ ... }` to represent the # contents of a dataset. a = { 1, 2, 3 } b = { (7, 8), (9, 10) } # The nested structure of the `datasets` argument determines the # structure of elements in the resulting dataset. a.enumerate(start=5)) == { (5, 1), (6, 2), (7, 3) } b.enumerate() == { (0,..