Pandas 为RNN加载数据

Pandas 为RNN加载数据,pandas,machine-learning,neural-network,theano,deep-learning,Pandas,Machine Learning,Neural Network,Theano,Deep Learning,在RNN训练示例中,我注意到输入数据和目标数据都是三维数组,需要定义输入和输出之间的时间步长延迟 input_seqs = np.zeros((num_batches, num_time_steps, batch_size), dtype=floatX) target_seqs = np.zeros((num_batches, num_time_steps, batch_size), dtype=floatX) target_seqs[0:-1, :] = input_seqs[1:, :]

在RNN训练示例中,我注意到输入数据和目标数据都是三维数组,需要定义输入和输出之间的时间步长延迟

input_seqs = np.zeros((num_batches, num_time_steps, batch_size), dtype=floatX)
target_seqs = np.zeros((num_batches, num_time_steps, batch_size), dtype=floatX)
target_seqs[0:-1, :] = input_seqs[1:, :]
我想为RNN培训加载自定义数据-输入向量=1,输出向量=1,时间步长=1(请参阅附件data1a.csv)。重塑在这里不起作用。有人能举例说明怎么做吗

train = pd.read_csv("data1a.csv")
input = np.array(train.values[:][:, 1:2], dtype=np.float32)
input_seqs = ???
target_seqs = ???
谢谢

数据链路:

我只是有一些想法,但不知道如何继续:

train = pd.read_csv("data1a.csv")
dataset = np.array(train.values[:][:, 1:2], dtype=np.float32)

def batch(): 
    inputs = np.zeros((batch_size, time_steps, dataset.shape[1]), 'f') 
    outputs = np.zeros((batch_size, time_steps, dataset.shape[1]), 'f') 
    for b in range(batch_size): 
        i = np.random.randint(len(dataset) - time_steps - 1) 
        inputs[b] = dataset[i:i+time_steps] 
        outputs[b] = dataset[i+1:i+1+time_steps] 
    return [inputs, outputs] 
下一步是什么

input_seqs = ???
target_seqs = ???

现在还不清楚你想要实现什么。您的数据似乎包含单个序列;这是你的完整训练数据集吗?如果是这样,您想要一个包含大小为1的单个批次(即num_batches=1和batch_size=1)的三维张量吗?是否希望两列都成为输入序列的一部分?如果是这样,这将使其成为4D张量。在data1a.csv的情况下,输入的结构可以如下所示:num_batches=1,batch_size=1,num_time_steps将是40个来自新增加数量的数字。(在RNN示例中不是零数组)。所以我认为它应该是一个三维张量。此外,如果num_batches=2和batch_size=2,如何构造输入?num_batches>1和batch_size>1只有在您有更多数据时才有意义。如果您有更多数据,它在源CSV中的结构如何?或者您想从单个CSV构建多个较短的序列(例如,2个长度为20的序列或4个长度为10的序列)?我在问题中添加了一些代码。将数据传输到网络的时间步长为1,并以n+1时间步长预测输出。你能解释一下吗?我还是不明白你想干什么。考虑到您拥有的培训数据非常有限,也许您可以用您希望最终得到的实际批处理结构来更新您的问题?