메뉴 건너뛰기

목록
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 1340 1
1116 삭제된 게시글입니다. 저능아 2022.11.06 4 0
1115 으아아아아 그리드 2022.11.13 4 0
1114 별찍기 그리드 2022.11.15 5 0
1113 삭제된 게시글입니다. 애옹쓰 2023.01.12 5 0
1112 내일까지 ... 해본다 삼김식감 2023.03.24 5 0
1111 몰루 그리드 2022.09.11 6 0
1110 mysql이랑 mariadb랑 라이센스말곤 매 비슷한거임? 2 저능아 2022.11.08 6 0
1109 자료구조책 왔음 그리드 2022.12.02 6 0
1108 SQL 쉽노!!! 또치면과락 2024.05.07 6 0
1107 기출문제 풀면서 모르는걸 외우겠음 또치면과락 2024.05.08 6 0
1106 삭제된 게시글입니다. 머저리 2022.05.30 7 0
1105 동적할당이던가 그리드 2022.09.17 7 0
1104 캡스톤 솔루션 어디서 삼 그리드 2022.11.08 7 0
1103 항공사진에서 적용할 효과 2 그리드 2022.11.21 7 0
1102 UV-C LED 그리드 2022.11.23 7 0
1101 이더리움 일간 가격 데이터셋 만들기 그리드 2022.11.23 7 0
» 그리드 2022.11.23 7 0
1099 시펄 1 그리드 2022.11.29 7 0
1098 전처리기 #과 ##에 대해 그리드 2022.11.29 7 0
1097 토익 후기 1 updatefile 또치면과락 2024.05.08 7 0
목록
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 56 Next
/ 56