Kreas错误 TypeError: __init__()缺少1个必需的位置参数: ‘units’

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

这是代码:

import pandasimport numpyfrom keras.layers.core import Dense, Activation, Dropoutfrom keras.layers.recurrent import LSTMfrom keras.models import Sequentialimport matplotlib.pyplot as pltCONST_TRAINTING_SEQUENCE_LENGTH = 12CONST_TESTING_CASES = 5def 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. 加载数据    data = pandas.read_csv('/Users/yindeyong/Desktop/Django_Projects/pythonstock/data/Intraday/' + ticker + '.csv')[        'close'].tolist()    # Step 2. 构建训练数据    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. 构建测试数据    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. 重塑数据以供深度学习使用    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_Basedef predictLSTM(ticker):    # Step 1. 加载数据    X_Training, Y_Training, X_Testing, Y_Testing, Y_Testing_Base = getDeepLearningData(ticker)    # Step 2. 构建模型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. 训练模型model.fit(X_Training, Y_Training,          batch_size=512,          nb_epoch=5,          validation_split=0.05)

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

使用TensorFlow后端。Traceback (most recent call last): File “/Users/yindeyong/Desktop/Django_Projects/pythonstock/deeplearningprediction.py”, line 127, in predictLSTM(ticker=’MRIN’) File “/Users/yindeyong/Desktop/Django_Projects/pythonstock/deeplearningprediction.py”, line 96, in predictLSTM return_sequences=True)) File “/Users/yindeyong/Desktop/Django_Projects/envs/stockenv/lib/python3.6/site-packages/keras/legacy/interfaces.py”, line 91, in wrapper return func(*args, **kwargs)

TypeError: init()缺少1个必需的位置参数: ‘units’ 进程以退出代码1结束


回答:

你需要在这个位置指定LSTM单元的数量

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

与你在下一层LSTM中所做的一样。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注