gpt4 book ai didi

tensorflow - Kreas错误TypeError : __init__() missing 1 required positional argument: 'units'

转载 作者:行者123 更新时间:2023-11-30 09:44:46 37 4
gpt4 key购买 nike

我正在尝试使用 kreas 来预测股票价格。

这是代码:

import pandas
import numpy
from keras.layers.core import Dense, Activation, Dropout
from keras.layers.recurrent import LSTM
from keras.models import Sequential
import matplotlib.pyplot as plt

CONST_TRAINTING_SEQUENCE_LENGTH = 12

CONST_TESTING_CASES = 5


def dataNormalization(data):
return [(datum - data[0]) / data[0] for datum in data]


def dataDeNormalization(data, base):
return [(datum + 1) * base for datum in data]


def getDeepLearningData(ticker):
# Step 1. Load data
data = pandas.read_csv('/Users/yindeyong/Desktop/Django_Projects/pythonstock/data/Intraday/' + ticker + '.csv')[
'close'].tolist()

# Step 2. Building Training data
dataTraining = []
for i in range(len(data) - CONST_TESTING_CASES * CONST_TRAINTING_SEQUENCE_LENGTH):
dataSegment = data[i:i + CONST_TRAINTING_SEQUENCE_LENGTH + 1]
dataTraining.append(dataNormalization(dataSegment))

dataTraining = numpy.array(dataTraining)
numpy.random.shuffle(dataTraining)
X_Training = dataTraining[:, :-1]
Y_Training = dataTraining[:, -1]

# Step 3. Building Testing data
X_Testing = []
Y_Testing_Base = []
for i in range(CONST_TESTING_CASES, 0, -1):
dataSegment = data[-(i + 1) * CONST_TRAINTING_SEQUENCE_LENGTH:-i * CONST_TRAINTING_SEQUENCE_LENGTH]
Y_Testing_Base.append(dataSegment[0])
X_Testing.append(dataNormalization(dataSegment))

Y_Testing = data[-CONST_TESTING_CASES * CONST_TRAINTING_SEQUENCE_LENGTH:]

X_Testing = numpy.array(X_Testing)
Y_Testing = numpy.array(Y_Testing)

# Step 4. Reshape for deep learning
X_Training = numpy.reshape(X_Training, (X_Training.shape[0], X_Training.shape[1], 1))
X_Testing = numpy.reshape(X_Testing, (X_Testing.shape[0], X_Testing.shape[1], 1))

return X_Training, Y_Training, X_Testing, Y_Testing, Y_Testing_Base


def predictLSTM(ticker):
# Step 1. Load data

X_Training, Y_Training, X_Testing, Y_Testing, Y_Testing_Base = getDeepLearningData(ticker)

# Step 2. Build model
model = Sequential()

model.add(LSTM(
input_shape=1,
dropout_dim=50,
return_sequences=True))
model.add(Dropout(0.2))

model.add(LSTM(
200,
return_sequences=False))
model.add(Dropout(0.2))

model.add(Dense(output_dim=1))
model.add(Activation('linear'))

model.compile(lose='mse', optimizer='rmsprop')

# Step 3. Train model
model.fit(X_Training, Y_Training,
batch_size=512,
nb_epoch=5,
validation_split=0.05)

但是当我运行它时,我收到一个错误:

使用 TensorFlow 后端。回溯(最近一次调用最后一次): 文件“/Users/yindeyong/Desktop/Django_Projects/pythonstock/deeplearningprediction.py”,第 127 行,位于 预测LSTM(代码='MRIN') 文件“/Users/yindeyong/Desktop/Django_Projects/pythonstock/deeplearningprediction.py”,第96行,在predictLSTM中 return_sequences=True)) 文件“/Users/yindeyong/Desktop/Django_Projects/envs/stockenv/lib/python3.6/site-packages/keras/legacy/interfaces.py”,第 91 行,包装器中 返回 func(*args, **kwargs)

TypeError: init() missing 1 required positional argument: 'units' Process finished with exit code 1

最佳答案

您必须在此位置指定 LSTM 单元的数量

model.add(LSTM(200,
input_shape=1,
dropout_dim=50,
return_sequences=True))

与您在 LSTM 的下一层上所做的类似。

关于tensorflow - Kreas错误TypeError : __init__() missing 1 required positional argument: 'units' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53966405/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com