Как сгущать и преобразовывать набор данных [3751,4] в набор данных [1,6] во время тренировки в Tensorflow - PullRequest
0 голосов
/ 23 мая 2018

Я тренирую модель с формой объекта [3751,4], и я хотел бы использовать функцию изменения формы и плотного слоя, встроенную в Tensorflow, чтобы выходные метки имели форму [1,6].

Теперь у меня есть два скрытых слоя в моей модели, которые будут выглядеть примерно так:

input_layer = tf.reshape(features["x"], [-1,11,11,31,4])
first_hidden_layer = tf.layers.dense(input_layer, 4, activation=tf.nn.relu)
second_hidden_layer = tf.layers.dense(first_hidden_layer, 5, activation=tf.nn.relu)
output_layer = tf.layers.dense(second_hidden_layer, 6)

Так что теперь я могу иметь форму output_layer [?, 11,11,31,6].

Как дополнительно сформировать наборы обучающих узлов, чтобы они могли в конечном итоге соединить узлы с формой [1,6]?

1 Ответ

0 голосов
/ 23 мая 2018

Форма [3751, 4] не может быть изменена непосредственно на [-1,11,11,31,4], поскольку 3751*4 = 15004 не делится поровну на 11*11*31*4 = 14964.


РЕДАКТИРОВАТЬ после комментария от OP

Вы можете сгладить свой набор данных и использовать его в качестве одного примера.См. Ниже

Предполагая, что tf.shape(input_feat)==[3751, 4]:

input_layer = tf.reshape(input_feat, [1,-1])
first_hidden_layer = tf.layers.dense(input_layer, 4, activation=tf.nn.relu)
second_hidden_layer = tf.layers.dense(first_hidden_layer, 5, activation=tf.nn.relu)
output_layer = tf.layers.dense(second_hidden_layer, 6)

Исходный ответ

Не изменяет входные функции в началеСеть будет работать нормально и даст аналогичные результаты, поскольку вы используете плотные слои.Единственное отличие состоит в том, что веса в слое будут сдвигать позиции, но это не повлияет на ваши результаты.

Если предположить tf.shape(input_feat) == [3751, 4], следующий фрагмент кода должен работать нормально

input_layer = tf.identity(input_feat)
first_hidden_layer = tf.layers.dense(input_layer, 4, activation=tf.nn.relu)
second_hidden_layer = tf.layers.dense(first_hidden_layer, 5, activation=tf.nn.relu)
output_layer = tf.layers.dense(second_hidden_layer, 6)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...