Vielen Dank im Voraus für jede Hilfe.mxnet training nicht voran
Ich habe einige Probleme, ein mxnet-Modell zu bekommen, um zu irgendetwas zu konvergieren: es scheint nah an seinen anfänglichen Gewichten festzustecken.
Ein funktionierendes Beispiel (obwohl ich gekämpft habe, viele solcher Modelle heute arbeiten zu lassen). Ich habe den folgenden Ansatz mit einer Reihe von Epochen (bis zu 100) und einer Reihe von Lernraten (0,001 bis 10) ausprobiert und kann nichts Vernünftiges daraus ziehen.
import mxnet as mx
import numpy as np
inputs = np.expand_dims(np.random.uniform(size=10000), axis=1)
labels = np.sin(inputs)
data_iter = mx.io.NDArrayIter(data=inputs, label=labels, data_name='data', label_name='label', batch_size=50)
data = mx.sym.Variable('data')
label = mx.sym.Variable('label')
fc1 = mx.sym.FullyConnected(data=data, num_hidden=128)
ac1 = mx.sym.Activation(data=fc1, act_type='relu')
fc2 = mx.sym.FullyConnected(data=ac1, num_hidden=64)
ac2 = mx.sym.Activation(data=fc2, act_type='relu')
fc3 = mx.sym.FullyConnected(data=ac2, num_hidden=16)
ac3 = mx.sym.Activation(data=fc3, act_type='relu')
output = mx.sym.FullyConnected(data=ac3, num_hidden=1)
loss = mx.symbol.MakeLoss(mx.symbol.square(output - label), name="loss")
model = mx.module.Module(symbol=loss, data_names=('data',), label_names=('label',))
import logging
logging.getLogger().setLevel(logging.DEBUG)
model.fit(data_iter,
optimizer='sgd',
optimizer_params={'learning_rate':0.1},
eval_metric='mse',
num_epoch=5)
verursacht:
INFO:root:Epoch[0] Train-mse=0.221155
INFO:root:Epoch[0] Time cost=0.173
INFO:root:Epoch[1] Train-mse=0.225179
INFO:root:Epoch[1] Time cost=0.176
INFO:root:Epoch[2] Train-mse=0.225179
INFO:root:Epoch[2] Time cost=0.179
INFO:root:Epoch[3] Train-mse=0.225179
INFO:root:Epoch[3] Time cost=0.176
INFO:root:Epoch[4] Train-mse=0.225179
INFO:root:Epoch[4] Time cost=0.183
wo es klar ist das Training nicht wirklich voran.
Sie mit einer tanh-Aktivierung an der Ausgangsschicht, auf diese Weise den Bereich der Sünde und der Ausgang des Netzwerks Spiel versuchen sollte. –
Guter Punkt. Dies ist ein schnelles Beispiel, das ich für SO erstellt habe, aber meine Frage gilt sogar für eine vernünftigere Ausgabeschicht :) Ich benutze mxnet falsch, aber ich kann nicht sehen, wo! – Ats