我想向一维CNN输入固定长度的序列,并希望它进行预测(回归),但是我希望在训练过程中批量大小可变。这些教程并没有真正的帮助。
在我的输入层中,我有这样的东西:
input = tf.placeholder(tf.float32, [None, sequence_length], name="input")
y = tf.placeholder(tf.float32, [None, 1], name="y")
因此,我假设None
维度可以是任意数量的可变批量大小,因此当前的input
维度为batch_size * sequence_length
,我应该将网络二维尺寸为any * sequence_length
tf.nn.conv1d
预期为3-D,因为我的输入是一个单一通道,是{n {1}}个观测值的1 np数组,我需要馈送到cnn的输入应为sequence_length
,另一方面,如果我要组合两个不同的序列以最终预测单个值,那将是1*batch_size * sequence_length
,并且我还需要连接两个不同的通道。因此,就我而言,我需要
2*batch_size * sequence_length
,然后过滤器也遵循相同的条件:
input = tf.expand_dims(input, -1)
此后,我添加了FC层,但是网络无法学习任何内容,即使是基本功能(例如sin(x)),上面的代码看起来正确吗?
我又该如何做一个最大池?