전체 글 66

파이썬 assert, raise 차이점

파이썬에서 예외를 발생시키는 방법은 assert, raise 두가지가 있다. 그동안 크게 고민없이 사용했는데, 정리가 필요한것 같아 포스팅을 작성한다. assert 아래처럼 사용법은 굉장히 간단하다. cond = False assert cond == True, "condition is not true" 에러가 발생할 경우, 아래처럼 화면에 에러문이 출력된다. Traceback (most recent call last): File "", line 1, in AssertionError: condition is not true 그리고 한가지 주의할 점은 __debug__ 상수가 False라면 동작하지 않는다. (기본적으로 True 이다) raise 사용방법은 역시나 간단하다. if bottom == 0: ra..

IT/Python 2021.01.12

PlantUML Viewer 설치하고 사용하기 (MAC + Visual Studio Code 환경)

MAC + Visual Studio Code 환경에서 PlantUML Viewer 설치하고 사용하기 먼저 설치 방법은 URL에 나와있다. (내 mac에서는 java 설치 command가 달랐다) 해야 할일은 아래 순서다 1. java 설치 2. graphviz 설치 3. PlantUML Visual Studio Code Extension 설치 1. java 설치 brew tap adoptopenjdk/openjdkbrew cask install adoptopenjdk11 2. graphviz 설치 brew install graphviz 3. PlantUML Visual Studio Code Extension 설치 - Visual Studio Code 실행 - PlantUML Extensions 검색 및 ..

IT/PlantUML 2021.01.11

[인공지능 기자 만들기#1] 설계하기 - Action Item 정의하기

[인공지능 기자 만들기#1] 할 일 정의하기 - Action Item 정의하기 오늘(2020-11-04)부터 뉴스를 만들어내는 기자 AI 봇을 만들어 보려고 한다. 가족과의 시간과 회사업무시간을 제외하면 얼마나 많은 시간을 투자할 수 있을지 모르지만, 여기 이렇게 적어 놓으면, 꾸역꾸역 완성은 하지 않을까? ㅎㅎ 무엇보다 만들면서 많은것을 배울 수 있었으면 좋겠다. 일단 첫번째 단계로, 할일(=Action Item)을 정의하고 Activity Diagram을 만들어 봤다. (by PlantUML) 일정은 적지 않았다. (어차피 지킬수 없으니깐) 최종 아래처럼 동작하는 시스템을 만들려고 한다. 크롤러를 통해서 비슷한 주제의 Naver 뉴스를 크롤링하고 자연어 처리를 통해서 의미를 분석하고 하나의 뉴스를 생..

Tail Recursion(꼬리 재귀)란?

재귀함수 사용시 주의점재귀함수를 공부할때 항상 나오는 단점이 "stack memory" 가 많이 필요하다는 말이다.재귀함수란 A함수 안에서 A함수를 다시 부르는건데,A함수가 종료되지 않은 상태에서 A함수를 한번더 부르기 때문에, 종료되지 않은 함수들이 계속해서 stack에 쌓여간다.따라서 재귀호출이 너무 많이되면 stack memory가 overflow 될 수 있다.이렇게 stack memory를 과다사용하는 재귀호출의 문제점을 피하기 위한 방법이 바로 Tail Recursion(꼬리재귀)이다. Tail Recursion(꼬리 재귀)란?아래 예를 보자 (1~n 까지의 합을 구하는 일반적인 재귀함수다)r_sum 이라는 함수 내부에서 자기자신(r_sum)을 호출한다."r + r_sum()" 으로 되어 있기 ..

IT/Programming 2021.01.11

파이썬 REPL 이란?

REPL 이란?Read(입력), Eval(평가), Print(출력), Loop(반복)코드를 입력하면 결과가 바로 출력(확인)되는 과정을 반복하는 것cmd, powershell, terminal 등과 같은 인터프리터 환경에서 가능함장점컴파일 과정이 없기 때문에 개발이 편리함소스 디버깅 및 수정이 간편함단점컴파일 과정이 없기때문에 느림 예를 들어 아래같은 C++ 코드가 있다면,실행이나 debuging을 하기 위해서는 전체 코드를 컴파일 해야한다.debugging 중간에 a 변수값을 2로 바꾸고 싶다면 코드 전체를 다시 컴파일해서 재실행 해야 한다.코드가 길고 로직이 복잡할때는 꽤 불편한 점이다.#include int main() { int a = 1; printf("%d\n", &a); } 하지만 파이썬같이..

IT/Programming 2021.01.11

MLP 파라미터(param) 개수 자세히 알기 (feat. 케라스)

케라스(keras) 코드를 활용해 MLP 파라미터 개수에 대해서 살펴보려고 한다. 모델을 만들자 먼저 아래처럼 간단한 분류 모델을 만들었다. import tensorflow as tf from sklearn.datasets import load_iris import numpy as np iris_data = load_iris() x = iris_data['data'] y = iris_data['target'] print(x.shape) print(np.unique(y)) [출력결과] x는 4개의 feature 를 가지고 있는 150개(row)의 데이터이고, y는 3개의 label을 가지고 있다. 이를 학습/분류 하기 위해서 아래같은 간단한 MLP(Multi Layer Perceptron) 모델을 만들었다..

IT/Machine Learning 2020.12.17

케라스(keras) 모델 저장(save) 및 불러오는(load) 2가지 방법

케라스 모델을 저장하고 불러오는 2가지 방법에 대해서 설명드리겠습니다. 모델 만들기 먼저 모델을 만들어야 겠죠? 7개 Layer 로 된 간단한 분류 모델을 만들었습니다. import tensorflow as tf from sklearn.datasets import load_iris import pandas as pd import numpy as np iris_data = load_iris() x = iris_data['data'] y = iris_data['target'] model = tf.keras.models.Sequential([ tf.keras.layers.Dense(32, input_dim=x.shape[1]), tf.keras.layers.BatchNormalization(), tf.kera..

IT/Machine Learning 2020.12.14

[인공지능 기자 만들기#7] 기사 자연어 분석기 만들기 - 유사도 분석, 기사생성

2020/11/04 - [프로젝트/인공지능 기자 만들기] - [인공지능 기자 만들기#1] 설계하기 - Action Item 정의하기 2020/11/13 - [프로젝트/인공지능 기자 만들기] - [인공지능 기자 만들기#2] 설계하기 - 프로세스 정의하기 2020/11/18 - [프로젝트/인공지능 기자 만들기] - [인공지능 기자 만들기 #3] 뉴스기사 크롤링 만들기 - 네이버 헤드라인 뉴스 크롤링 2020/11/19 - [프로젝트/인공지능 기자 만들기] - [인공지능 기자 만들기 #4] 뉴스기사 크롤링 만들기 - 뉴스기사 크롤러 (네이버 뉴스 크롤링) 2020/11/23 - [프로젝트/인공지능 기자 만들기] - [인공지능 기자 만들기#5] 기사 자연어 분석기 만들기 - 데이터 전처리 2020/11/24 -..

pandas itertuples, iterrows 성능 및 사용법 비교

매번 헷갈리는 pandas dataframe의 itertuples, iterrows 에 대한 비교를 해보자 둘다 Pansdas DataFrame을 행 단위로 반복처리하는 목적으로 사용하는데, 사용법이 약간 다르기 때문에, 매번 헷갈린다 ㅎ 이번 포스팅은 이것에 대한 사용법과 성능 비교를 목적으로 한다 사용법 차이 아래는 iterrows, itertuples의 sample 코드이다. import pandas as pd data = pd.DataFrame({'a': range(100000), 'b': range(100000)}) #iterrows for row in data.iterrows(): print('row:', row) # print('key:', row[0], 'val:', row[1]) brea..

IT/Python 2020.11.27

Key를 활용한 Azure Blob 다운로드, 업로드

Azure CLI통해 Blob 다운로드, 업로드 하는 방법을 알아보자 공식문서에도 관련내용이 있지만, 직접 사용자 login 을 통해 인증받는 방식만 소개하고 있다. 빠른 시작 - Azure CLI를 사용하여 Blob 만들기 - Azure Storage 이 빠른 시작에서는 Azure CLI를 사용하여 Azure Storage에 BLOB을 업로드하고, BLOB을 다운로드하고, 컨테이너의 BLOB을 나열하는 방법을 알아봅니다. docs.microsoft.com Storage Account Key값 확인하기 자동화를 위해서는 key를 통한 인증이 필요하다. azure portal 에서 storage account 의 key를 를 확인할수 있는데, 아래는 해당 key를 확인하는 방법이다 Azure Portal ..

IT/Public Cloud 2020.11.26
반응형