Переменный размер пакета в tensorflow и CNN

#tensorflow

#tensorflow

Вопрос:

Я хочу ввести в одномерный 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 , и я должен передать в сеть 2d np-массив с размерами any * sequence_length

tf.nn.conv1d ожидается, что 3-D, поскольку мой ввод представляет собой один канал, который представляет собой 1 np массив sequence_length наблюдений, входные данные, которые мне нужно будет передать в cnn, должны быть 1*batch_size * sequence_length , с другой стороны, если бы у меня было 2 разные последовательности, которые я объединяю, чтобы предсказать одно значение, в итоге это было бы 2*batch_size * sequence_length , и мне также нужно было бы объединить 2 разных канала. Итак, в моем случае мне нужно

 input = tf.expand_dims(input, -1)
  

и затем фильтр также выполняет то же самое:

 filter_size = 5
channel_size = 1
num_filters = 10
filter_shape = [filter_size, channel_size, num_filters]
filters = tf.Variable(tf.truncated_normal(filter_shape, stddev=0.1), name="filters")
tf.nn.conv1d(value=input, filters=filters, stride=1)
  

После этого я добавляю слой FC, но сеть не может ничего узнать, даже базовую функцию, такую как sin (x), правильно ли выглядит приведенный выше код?

Также как я могу выполнить максимальное распределение?