728x90
728x90

텐서플로우 인덱스 참조

- 텐서의 인덱스 참조도 넘파이와 유사

 

1차원 인덱싱

- 1차원 텐서 만들기 

>>> t = tf.constant([1,2,3,])
>>> t

<tf.Tensor: shape=(3,), dtype=int32, numpy=array([1, 2, 3], dtype=int32)>

- 인덱싱

>>> t[:2]
<tf.Tensor: shape=(2,), dtype=int32, numpy=array([1, 2], dtype=int32)>

 

2차원 인덱싱

- 2차원 텐서만들기

>>> t = tf.constant([[1,2,3],[4,5,6]])
>>> t

<tf.Tensor: shape=(2, 3), dtype=int32, numpy=
array([[1, 2, 3],
       [4, 5, 6]], dtype=int32)>

- 2차원 인덱싱

>>> t[:1]

<tf.Tensor: shape=(1, 3), dtype=int32, numpy=array([[1, 2, 3]], dtype=int32)>

>>> t[:,2]

<tf.Tensor: shape=(2,), dtype=int32, numpy=array([3, 6], dtype=int32)>

>>> t[:2,:2]

<tf.Tensor: shape=(2, 2), dtype=int32, numpy=
array([[1, 2],
       [4, 5]], dtype=int32)>

 

3차원 인덱싱

- 3차원 텐서만들기

>>> t = tf.constant([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])
>>> t

<tf.Tensor: shape=(2, 2, 3), dtype=int32, numpy=
array([[[ 1,  2,  3],
        [ 4,  5,  6]],

       [[ 7,  8,  9],
        [10, 11, 12]]], dtype=int32)>

- 3차원 인덱싱

>>> t[:2,1:,:2]

<tf.Tensor: shape=(2, 1, 2), dtype=int32, numpy=
array([[[ 4,  5]],

       [[10, 11]]], dtype=int32)>
728x90

'Development Study > tensorflow' 카테고리의 다른 글

[tensorflow] 텐서플로우 - 텐서 만들기 #1  (0) 2021.03.10
728x90

tf.constant()

 

- tf.constant() 함수로 텐서를 만들 수 있음

tf.constant(value, dtype=None, shape=None, name='Const')

 

이것저것 해보기

 

import tensorflow as tf

>>> tf.constant([1,2,3,])

<tf.Tensor: shape=(3,), dtype=int32, numpy=array([1, 2, 3], dtype=int32)>

- dtype 지정

>>> tf.constant([1,2,3],dtype=float)

<tf.Tensor: shape=(3,), dtype=float32, numpy=array([1., 2., 3.], dtype=float32)>

- shape 지정

- value의 shape 에 맞춰서 지정

>>> tf.constant([1,2,3],dtype=float,shape=(3,1))

<tf.Tensor: shape=(3, 1), dtype=float32, numpy=
array([[1.],
       [2.],
       [3.]], dtype=float32)>

 

 

728x90
728x90

DDQN Reinforcement Learning Trading System

DDQN 강화학습 주식 트레이딩 시스템

소개
  • DDQN 알고리즘을 이용한 강화학습 주식 트레이딩 시스템
개발환경
  • 사용언어 - 파이썬
  • IDE - PyCharm
  • 라이브러리
    • Tensorflow
    • Keras
    • Pandas
    • Numpy
    • Matplotlib
    • 등등
개요
  • 환경에서 주어진 State를 받아 Policy를 통해 Action 을 행동한다. 행동한 Action에 따른 Reward를 받게 되고 Q-value를 구하여 신경망을 학습하여 더 좋은 Reward을 받는 방향으로 모델을 업데이트한다.
  • Keras의 인공신경망을 통해 가치 신경망을 구성하여 학습을 진행한다.
  • 주식 데이터는 대신증권 API를 통해 수집한 종목별 일별 데이터를 사용하였으며, 실제 주식한경을 구성하는 것이 관건이라고 볼 수 있다.
  • State 또는 Observation으로 주어지는 데이터는 아래와 같다.
    • [현재가,전일 종가, 전일 대비, 시가, 고가,저가,누적 거래량, 전일 거래량, 전일 거래랭 대비]
  • 앞으로의 데이터 Feature는 추가 되거나 수정될 수 있다.

Version 1.0

개요
  • 데스트를 진행할 환경을 일별 과거데이터를 저장해 높은 csv파일을 DataFrame으로 만들어 사용하였다.
  • 일별 데이터의 종가를 현잭로 설정하였다.
  • 보상을 (잔금 + 보유 주식수 * 현재가) - 초기자본금 / 초기자본금으로 설정 하였다.
  • 보상 정책에 대한 수정이 필요로 한다.
  • 학습에 대한 수익률이 일정치 않은것으로 판단되며, 매수/ 매도량을 1로 설정한 부분과 지속적인 + 수익률을 만들 수 있는 모델을 만드는 것이 앞으로의 과제라고 판단된다.
<시각화>
  • 학습 단계에 따른 수익률
    Episode Profit

  • 마지막 에피소드 행동 비율
    action_ratio

728x90
728x90
728x90

+ Recent posts