Предположим, у меня есть массив массивов данных, таких, что 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.