메뉴 건너뛰기

목록
2022.11.23 19:00

profile
조회 수 7 댓글 0 예스잼 0 노잼 0

No Attached Image

import torch
import torch.optim as optim
import torch.nn as nn
 
import numpy as np
import pandas as pd
from torch.utils.data import DataLoader, TensorDataset
from sklearn.preprocessing import MinMaxScaler
 
import matplotlib.pyplot as plt
 
torch.manual_seed(0)
 
device = torch.device("cuda:0" if torch.cuda.is_available()
                      else "cpu")
 
seq_length = 7
data_dim = 6
hidden_dim = 10
output_dim = 1
learning_rate = 0.01
epochs = 500
batch_size = 100
 
def build_dataset(data, seq_len):
    dataX = []
    dataY = []
    for i in range(len(data)-seq_len):
        x = data[i:i+seq_len, :]
        y = data[i+seq_len, [-1]]
        dataX.append(x)
        dataY.append(y)
    return np.array(dataX), np.array(dataY)
 
df = pd.read_csv(r-")
 
df = df[::-1]
df = df[['Date','Close/Last','Volume','Open','High','Low']]
 
train_size = int(len(df)*0.7)
train_set = df[0:train_size]
test_set = df[train_size-seq_length:]
 
scaler_x = MinMaxScaler()
scaler_x.fit(train_set.iloc[:,:-1])
 
train_set.iloc[:,:-1] = scaler_x.transform(train_set.iloc[:,:-1])
test_set.iloc[:,:-1] =scaler_x.transform(test_set.iloc[:,:-1])
 
scaler_y = MinMaxScaler()
scaler_y.fit(train_set.iloc[:,[-1]])
 
trainX, trainY = build_dataset(np.array(train_set), seq_length)
testX, testY = build_dataset(np.array(test_set), seq_length)
 
trainX_tensor = torch.LongTensor(trainX).to(device)
trainY_tensor = torch.LongTensor(trainY).to(device)
 
testX_tensor = torch.LongTensor(testX).to(device)
testY_tensor = torch.LongTensor(testY).to(device)
 
dataset = TensorDataset(trainX_tensor, trainY_tensor)
 
dataloader = DataLoader(dataset,
                        batch_size=batch_size,
                        shuffle=False,
                        drop_last=True)
 
class LSTM(nn.Module):
    def __init__(self, input_dim, hidden_dim, seq_len, output_dim, layers):
        super(LSTM, self).__init__()
        self.hidden_dim = hidden_dim
        self.seq_len = seq_len
        self.output_dim = output_dim
        self.layers = layers
        self.lstm = nn.LSTM(input_dim, hidden_dim, num_layers=layers,
                            batch_first=True)
        self.fc = nn.Linear(hidden_dim, output_dim, bias=True)
    def reset_hidden_state(self):
        self.hidden = (
            torch.zeros(self.layers, self.seq_len, self.hidden_dim),
            torch.zeros(self.layers, self.seq_len, self.hidden_dim)            
        )
   
    def forward(self, x):
        x, _status = self.lstm(x)
        x = self.fc(x[:,-1])
        return x;
LSTM = LSTM(data_dim, hidden_dim, seq_length, output_dim, 1).to(device)
   
   

List of Articles
번호 제목 글쓴이 날짜 조회 수 추천
공지 수용소닷컴 이용약관 file asuka 2020.05.16 1310 1
928 내일까지 코드 올려놓겠음 그리드 2022.12.04 8 0
927 자료구조책 스택까지 클리어 ... 2 그리드 2022.12.04 23 0
926 내일은 아두이노로 작품을 제작할거임 file 그리드 2022.12.03 14 0
925 고등학생도 cv2나 keras 잘쓰네 그리드 2022.12.02 21 0
924 자료구조책 왔음 그리드 2022.12.02 6 0
923 과제와 보고서 제출이 14일정도 남은것에 대하여... 2 그리드 2022.11.30 19 0
922 전처리기 #과 ##에 대해 그리드 2022.11.29 7 0
921 시펄 1 그리드 2022.11.29 7 0
920 또 파이썬 공부 1 file 그리드 2022.11.28 25 0
919 소프트웨어 공학 책 그리드 2022.11.28 8 0
918 일요일까지는 딥러닝 논문보다가 2 그리드 2022.11.26 20 0
917 확인용 2 그리드 2022.11.23 24 0
» 그리드 2022.11.23 7 0
915 이더리움 일간 가격 데이터셋 만들기 그리드 2022.11.23 7 0
914 항공지도 이미지 처리방법의 예상순서 그리드 2022.11.23 13 0
913 UV-C LED 그리드 2022.11.23 7 0
912 이것저것 쓸만한 사이트 2 5 file 저능아 2022.11.22 32 2
911 도트연산자, 화살표연산자를 3 그리드 2022.11.22 14 0
910 그냥 막 적어봄 1 그리드 2022.11.21 10 0
909 아두이노 코스 그리드 2022.11.21 10 0
목록
Board Pagination Prev 1 ... 5 6 7 8 9 10 11 12 13 14 ... 56 Next
/ 56