본문 바로가기

machine learning56

pytorch lightning으로 코드 변경하기 기존 pytorch로 작성한 모델을 pytorch lightning으로 변경하는 코드를 작성했다. pytorch lightning으로 변경 후의 코드는 훨씬 깔끔하고 가독성이 있어서 좋았다. 일단 아래의 pytorch 코드가 변경 전의 코드이다. def train(config): device = "cuda" if torch.cuda.is_available() else "cpu" print(f"Using {device} device") model = NeuralNetwork(config['input_size'], config['hidden1'], config['hidden2'], len(config['labels']), config['dropout']).to(device) criterion = nn.Cro.. 2023. 2. 19.
kfp image policy 정의하기 2022.12.29 - [machine learning] - Kubeflow pipeline 작성 및 pvc에 저장하기 kfp로 pipeline을 작성하고 실행하다 보면 image tag가 같은 경우 새로 이미지를 pull 받지 않고 기존 컨테이너를 활용하는 것을 확인 할 수가 있다. 해당 기능이 어떤 점에서는 편할 수 있지만 동작 시 혼란을 야기할 수 있기 때문에 kfp 정의 시 image policy를 정의해 주도록 하자. def train_op(): op = dsl.ContainerOp( name='Test', image='test:test01' ) op.set_image_pull_policy("IfNotPresent") return op.apply(onprem.mount_pvc(pvc_name='.. 2023. 1. 16.
kubeflow pvc에 있는 모델 inference하기 이번에는 pvc에 있는 model을 kubeflow inference service를 이용하여 serving을 진행해보도록 하자. kubeflow ui에서 왼쪽 models 메뉴를 클릭한 후 NEW MODEL SERVER를 클릭하자. 클릭하면 빈 화면이 나타나는데 해당 화면에 inference service에서 사용할 yaml 값을 기입하자. inference.yaml apiVersion: "serving.kubeflow.org/v1beta1" kind: "InferenceService" metadata: name: “iris" spec: predictor: sklearn: Image: sklearn-server:v0.6.1 storageUri: "pvc://test/model” 위의 yaml 값을 입력.. 2022. 12. 30.
Kubeflow pipeline 작성 및 pvc에 저장하기 kubeflow를 통해 모델 생성을 위한 pipeline을 작성하고 작성된 모델을 kfserving을 통해 serving을 해볼 수가 있다. 오늘은 그 작업을 해보려고 한다. 우선 pipeline을 작업하기 위해서는 아래와 같은 requirements 가 필요하다. kfp == 1.8.9 scikit-learn == 1.0.1 dill == 0.3.4 numpy kfserving 위 python package를 설치했다면 이제 pipeline을 위한 코드를 작성해보자. pipeline.py import kfp from kfp import onprem from kfp import dsl def preprocess_op(): return dsl.ContainerOp( name='Preprocess Data'.. 2022. 12. 29.
[골빈해커의 3분 딥러닝] 05_01_TensorBoard 텐서플로우로 만든 모델을 저장 및 로딩하고 모델 파라미터 값들을 tensorboard에 표현해 보자. data = np.loadtxt('../data/data.csv', delimiter=',', unpack=True, dtype='float32') x_data = np.transpose(data[0:2]) y_data = np.transpose(data[2:]) data.csv 파일을 읽어서 앞의 두개의 데이터는 x_data로 나머지 데이터는 y_data에 저장하자. 참고로 data.csv는 아래의 형태로 구성되어 있다. 1 0 0 0 1 1 1 0 1 0 0 0 1 0 0 x_data의 경우 transpose를 안해줄 경우 2x3 형태의 데이터 [[1 1 0] [0 1 0]] 로 저장이 되기 때문에 .. 2019. 6. 7.
[골빈해커의 3분 딥러닝] 04_03_Word2Vec Word2Vec 모델을 deep learning을 이용해서 구현해 보자. import tensorflow as tf import matplotlib import matplotlib.pyplot as plt import numpy as np tensorflow와 matplotlib, numpy를 각각 import 한다. (각각 version : 1.13.0, 3.0.3, 1.16.3) matplotlib는 단어 -> 벡터로 변환 후 2차원 그래프 상에서 표시해주기 위한 용도로 사용된다. from matplotlib import font_manager, rc font_name = font_manager.FontProperties(fname="/usr/share/fonts/truetype/dejavu/guli.. 2019. 6. 6.
[골빈해커의 3분 딥러닝] 04_02_DeepNN 2019/06/04 - [machine learning] - [골빈해커의 3분 딥러닝] 04_01_classification [골빈해커의 3분 딥러닝] 04_01_classification 골빈 해커님이 쓰신 3분 딥러닝을 코드 위주로 설명한 포스팅. 4장 01에서는 2개의 특징 데이터(털, 날개)를 가지고 [기타, 포유류, 조류]를 분류하는 모델을 설명하고 있으며, 전체 코드는 아래와 같다. step by.. yujuwon.tistory.com 이전 포스팅에 이어 이번에는 layer를 2개를 만들어서 (Deep) 모델을 구현한 예제를 살펴보자. 이전 포스팅과의 차이라면 layer 개수와 loss 함수를 tf에서 제공하는 함수를 썼다는 정도이다. 전체 코드는 아래와 같다. 이전 포스팅과 차이점만 살펴보자.. 2019. 6. 5.
[골빈해커의 3분 딥러닝] 04_01_classification 골빈 해커님이 쓰신 3분 딥러닝을 코드 위주로 설명한 포스팅. 4장 01에서는 2개의 특징 데이터(털, 날개)를 가지고 [기타, 포유류, 조류]를 분류하는 모델을 설명하고 있으며, 전체 코드는 아래와 같다. step by step으로 하나씩 살펴보자. import tensorflow as tf import numpy as np 텐서플로우와 numpy를 import 하고 있다. 참고로 실행 환경에서의 텐서플로우와 numpy 버전은 각각 1.13.0, 1.16.3을 사용하였다. x_data = np.array([[0, 0], [1, 0], [1, 1], [0, 0], [0, 0], [0, 1]]) y_data = np.array([ [1, 0, 0], # 기타 [0, 1, 0], # 포유류 [0, 0, 1].. 2019. 6. 4.
TextToCNN으로 분류하기 Text를 마치 하나의 image로 인식해서 CNN 모델에 태우는 기법의 분류가 높은 성능을 보인다고 해서 나도 한번 테스트를 해봤다.우선 이론 및 모델은 김윤 교수님의 논문인 Convolutional Neural Networks for Sentence Classification을 차용했다. 모델에 대해 간략히 설명하자면, 어떤 하나의 문장이 들어오면 해당 문장을 단어로 나누고 (위의 그림의 경우에서는 wait, for, the, video, and가 됨) 각 단어에 대해 embedding vector를 적용 시킨다. 가령 단어의 개수가 5개고 embedding vector가 128차원이라면 매트릭스는 5 x 128의 행렬이 된다. 이렇게 구성된 행렬에 convolution을 적용시킨다. 논문에서는 co.. 2019. 1. 28.