Как тренироваться на ряде обучающих примеров, когда NN моделируется рекурсивно в тензорном потоке? - PullRequest
0 голосов
/ 06 января 2020

Предположим, у меня есть массив массивов данных, таких, что data [0] представляет 1-й пример скомпонованных обучающих данных, а затем есть метка, такая, что ее размеры соответствуют размерам данных

И если Я должен был смоделировать NN таким образом, чтобы

input = tf.placeholder(tf.float32, shape=[None,len(data[0])])
label = tf.placeholder(tf.float32, shape=[None,len(output[0])])

network = tf.layers.Dense(10, tf.keras.activations.relu)(input)
network = tf.layers.BatchNormalization()(network)
network = tf.layers.Dense(10,tf.keras.activations.relu)(network)
network = tf.layers.BatchNormalization()(network)

network = tf.layers.Dense(len(data[0],tf.keras.activations.linear)(network)

, где input - это заполнитель, который берет пример обучения, такой как data [0] или data [1]

, тогда я мог определить потеря такая, что

cost = tf.reduce_mean((label - network)**2)
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01).minimize(cost)

, а затем оптимизируйте ее, как указано выше, запустив

sess.run([optimizer,cost].... 

Но это только обучает NN с данным 1 примером обучения и соответствующей меткой

Как я могу обучить NN для всех примеров в данных?

Я попытался определить total_cost как сумму всех затрат, повторяющихся в наборе данных, и это не работает, так как измерения не совпадают для заполнители

Я знаю, что вы могли бы просто построить модель NN в модели keras

model = Sequential()
model.add(tf.nn.relu.... 

и затем оптимизировать ее с помощью model.fit (data, label ...

но я тоже хочу научиться w для оптимизации NN без использования модели keras.

...