강좌
클라우드/리눅스에 관한 강좌입니다.
클라우드 분류

[KT클라우드]AI Studio 소스코드 가이드 - 샘플코드

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

AI Studio 모델 학습 코드 작성을 위한 샘플코드입니다.
모델 학습
Keras 프레임워크
from __future__ import print_function
import numpy as np
import pandas as pd
from tensorflow.python import keras
from tensorflow.python.keras import backend as K
from tensorflow.python.keras.models import Sequential
from tensorflow.python.keras.layers import Dense, Dropout, Flatten
from tensorflow.python.keras.layers import Conv2D, MaxPooling2D
from sklearn.datasets import load_iris
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
"""
AI Studio와 연계를 위한 기본 객체 생성
"""
from aicentro.session import Session
aistudio_session = Session(verify=False)
"""
학습 모델 개발 시 프레임워크별 객체 사용
"""
from aicentro.framework.keras import Keras as AistudioFrm
aistudio_framework = AistudioFrm(session=aistudio_session)
"""
모델 코드 작성
"""
batch_size = 128
num_classes = 3
epochs = 10
 
data = load_iris()
 
X = data.data
y = data.target
 
encoder = LabelEncoder()
y1 = encoder.fit_transform(y)
Y = pd.get_dummies(y1).values
 
X_train, X_test, y_train, y_test = train_test_split(X, Y,test_size=0.2, random_state=1)
 
model = Sequential()
model.add(Dense(64,input_shape=(4,),activation='relu'))
model.add(Dense(64,activation='relu'))
model.add(Dense(3,activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='Adam',metrics=['accuracy'])
model.summary()
 
"""
모델 학습 시 Accuracy 와 Loss 값을 AI Studio로 전송하여 UI 상에 노출
제공된 Metric Callback 사용
"""
history = aistudio_framework.get_metric_callback()
model.fit(X_train, y_train,
       batch_size=batch_size,
       epochs=epochs,
       verbose=1,
       validation_data=(X_test, y_test),
       callbacks=[history])
 
y_test_pred = model.predict(X_test, batch_size=128, verbose=1)
y_label = data.target_names.tolist()
y_test_c = np.argmax(y_test, axis=1).reshape(-1, 1)
y_test_pred_c = np.argmax(y_test_pred, axis=1).reshape(-1, 1)
"""
모델 학습 후 결과를 저장하고 해당 결과를 UI 상에 노출
"""
aistudio_framework.plot_confusion_matrix(y_test_c, y_test_pred_c, target_names=y_label, title='Confusion Matrix')
aistudio_framework.classification_report(y_test_c, y_test_pred_c, target_names=y_label)
aistudio_framework.plot_roc_curve(y_test, y_test_pred, len(y_label), y_label)
'''
학습된 모델 저장
'''
aistudio_framework.save_model(model, model_name='iris-classification')           
Scikit Learn 프레임워크
from __future__ import print_function
import numpy as np                
import pandas as pd                
"""
AI 포탈과 연계를 위한 기본 객체 생성                
"""
from aicentro.session import Session                
session = Session(verify=False)                
"""
학습 모델 개발 시 프레임워크별 객체 사용                
"""
from aicentro.framework.framework import BaseFramework as Frm                
framework = Frm(session=session)                
"""
모델 코드 작성                
"""
from sklearn.linear_model import LogisticRegression                
from sklearn import datasets                
from sklearn.datasets import load_iris                
from sklearn.preprocessing import LabelEncoder                
from sklearn.model_selection import train_test_split               
                
data = load_iris()               
                
X = data.data                
y = data.target                
y_label = data.target_names.tolist()                
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)                
                
logreg = LogisticRegression(C=1e5)                
logreg.fit(X_train, y_train)                
y_test_pred = logreg.predict(X_test)
                
y_test_c = y_test.reshape(-1, 1)                
y_test_pred_c = y_test_pred.reshape(-1, 1)                
                

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  166 명