1. Colab의 TPU 활용
- TPU의 정의 : Colab의 하드웨어 가속기는 None(CPU), GPU, TPU(Tensor Processing Unit).
구글에서 2016년 5월에 발표한 데이터 분석 및 딥러닝용 하드웨어. GPU보다 10배 이상 빠름. 해외직구 시 480만원.
8비트 정수 연산(vs. 부동 소수점 연산)을 활용한 벡터/행렬 연산의 병렬 처리에 특화되어 있으며, 넘사벽급의 전성비(소비전력 대비 성능)를 자랑함. 모델의 실행뿐만 아니라 학습 과정에도 8비트 정수 연산을 활용할 것으로 추정됨.
구글 엔지니어 블로그에 의하면 알파고도 GPU가 아닌 TPU상으로 구현되어 있다고 함.
출처 - 나무위키_TPU https://namu.wiki/w/TPU
- TPU 활용 방법 :
- 1. Colab에서 런타임 > 런타임 유형 변경 > 하드웨어 가속기에서 'TPU' 선택
- 2. TPU의 경우에는 런타임 유형 변경에서 TPU를 선택한다고 바로 사용할 수 있는 것이 아님. 추가적인 코드 설정을 해주어야 함
# TPU 초기화
import tensorflow as tf
import os
resolver = tf.distribute.cluster_resolver.TPUClusterResolver(tpu='grpc://' + os.environ['COLAB_TPU_ADDR'])
tf.config.experimental_connect_to_cluster(resolver)
tf.tpu.experimental.initialize_tpu_system(resolver)
# TPU Strategy 셋팅
# 훈련을 여러 GPU 또는 여러 장비, 여러 TPU로 나누어 처리하기 위한 텐서플로 API
strategy = tf.distribute.TPUStrategy(resolver)
# 딥러닝 모델의 컴파일(strategy.scope 내에서 이루어져야 함)
def create_model():
return tf.keras.Sequential(
[tf.keras.layers.Conv2D(256, 3, activation='relu', input_shape=(28, 28, 1)),
tf.keras.layers.Conv2D(256, 3, activation='relu'),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(256, activation='relu'),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(10)])
with strategy.scope():
model = create_model()
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['sparse_categorical_accuracy'])
# 이 모델을 fit() 하게되면 해당 모델은 TPU를 사용하며 학습하게 됨
# GPU 실습 코드로 되돌리기
# 위에서 모델의 층을 쌓고, 컴파일하는 코드를 제외한 TPU 진행만을 위한 코드들을 전부 제거해주면 됨
출처 - 위키독스_딥러닝을 이용한 자연어 처리 입문 https://wikidocs.net/119990
TPUs in Colab https://colab.research.google.com/notebooks/tpu.ipynb#scrollTo=ovFDeMgtjqW4
2. 주식 투자 자동화
<투자 전략>
변동성 돌파 전략 : 가격의 움직임이 일정 수준 이상을 뛰어넘는 강한 상승세를 돌파 신호로 파악하고 상승하는 추세를 따라가며, 짧은 수익을 실현하는 단기 트레이딩 전략
- 매수 : 최유리 FOK 조건 == 매도호가에 전량 체결되지 않으면 주문 자체를 취소함
- 매도 : 최유리 IOC 조건 == 매수호가에 체결 후 남은 수량을 취소함
<구현 순서>
1. 파이썬으로 주식을 언제 매매할 것인지 투자 전략(변동성 돌파)을 구현
2. 작업 스케줄러와 증권사 API(키움증권, 대신증권 크레온, 이베스트 투자증권)를 이용해서 주식 시장이 개장할 때마다 자동 매매
3. 거래가 발생하거나 특정 이벤트가 있을 때마다 slack(메신저)으로 알림
<거래 시간>
- 주식 시장 정규 시간 : 9 ~ 15:30
- LP(유동성 공급자) 활동 시간 : 9:05 ~ 15:20
- 자동매매 시간 : 9:05 ~ 15:15 / 15:20(종료)
- 작업 스케줄러 : 연결 9:40, 자동매매 9:50~ (컴퓨터 내내 켜놓기 싫다면 AWS 활용)
<거래 종목>
주식 살 때 약 0.019%, 팔 때 약 0.269% vs. ETF 살 때 약 0.019%, 팔 때 약 0.019%이므로 거래 비용이 적은 ETF를 선택
<Params>
투자 전략에 따라 매수/매도 코드 변경 가능(변동성 돌파 전략을 →딥러닝. 일반적으로 K값은 0.5를 사용하지만, 수익률에 따라 조정하는 것이 좋음), 종목을 ETF가 아닌 주식으로 변경 가능
출처 - 파이썬 주식 투자 자동화 https://www.youtube.com/playlist?list=PLU9-uwewPMe0fB60VIMuKFV7gPDXmyOzp
slacker.Error: invalid_auth 에러 해결방법 https://developerdk.tistory.com/96
CREON Plus 자료실 https://money2.creontrade.com/e5/mboard/ptype_basic/plusPDS/DW_Basic_List.aspx?boardseq=299&m=9505&p=8833&v=8639
파이썬 증권 데이터 분석 https://github.com/INVESTAR/StockAnalysisInPython
'개인 공부' 카테고리의 다른 글
4/28 목_ReduceLROnPlateau, Optimizer(Momentum, AdaGrad, RMSProp) (0) | 2022.04.29 |
---|---|
4/26 화_웹 스크래핑, Average Precision, Detector, Object Detection 모델(R-CNN, YOLO) (0) | 2022.04.27 |
4/22 금_AWS의 GPU, AI 프로젝트 주제 (0) | 2022.04.21 |
4/20 수_퀀트 투자, 주가 예측 실습(LSTM), Conv3D, GAN과 CLIP (0) | 2022.04.19 |
4/18 월_배치 정규화, Optimizer, TensorFlow, 퀀트 투자, 파이프라인 (0) | 2022.04.18 |