使用Keras功能API屏蔽层

时间:2017-01-13 16:42:42

标签: time-series theano

我试图使用Keras'功能API因为我需要在两层之间的循环神经网络中添加额外的输入。这样就可以了,但我也想要预测输入,所以我使用屏蔽层来防止样本数据不能影响模型。当我尝试传递一个Input(...)时,屏蔽层会抛出一个错误,因为它期望一个整数列表而不是张量变量。功能API是否有特定的屏蔽层?这是我的代码:

import numpy
import pandas
import math
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import LSTM
from keras.layers import GRU
from keras.layers import SimpleRNN
from keras.layers.core import Masking 
from keras.optimizers import Adam
from keras.optimizers import RMSprop
from keras.optimizers import Nadam
from keras.layers import TimeDistributed
from keras import initializations
from keras.layers import Input, merge
from keras.models import Model


dataframe = pandas.read_csv('C:/Users/RNCZF01/Documents/Cameron-Fen/Economic Ideas/LSTM/LSTM-data/GDP+stockmarket.csv',  usecols=[1,3], header=None, engine='python')
dataset = dataframe.values
dataset = dataset.astype('float32')

dataframe1 = pandas.read_csv('C:/Users/RNCZF01/Documents/Cameron-Fen/Economic Ideas/LSTM/LSTM-data/GDP+stockmarket.csv', usecols=[0], header=None, engine='python')
dataset1 = dataframe1.values
dataset1 = dataset1.astype('float32')

train, test = dataset[start:train_size+test_size,:]*mult, dataset1[start:train_size+test_size,:]*mult
#set the masking to 0.0
for each in range(test_size):
    train[train_size + each,:] = [0.0,0.0]
train, test = train[:259], test[:259]
validx, validy = dataset[start:train_size+test_size,:]*mult, dataset1[start:train_size+test_size,:]

main_input = Input(shape=(259,2), name='main_input')
m = Masking(mask_value=0.0)(main_input)#error is her because masking expects indices to be integers not a tensor variable

这是data。使用第0列作为测试数据,使用第1列和第3列作为代码中的训练数据。

0 个答案:

没有答案