warum Sie diesen code über die Verwendung mxnet um Zug eine regression net nicht konvergieren?

dies ist der code:

import mxnet
from mxnet import io, gluon, autograd
from mxnet.gluon import nn
from mxnet.gluon.data import ArrayDataset
ctx =  mxnet.gpu() if mxnet.test_utils.list_gpus() else mxnet.cpu()

iter = io.CSVIter(data_csv="data/housing.csv", batch_size=100, data_shape=(10, ))


loss = gluon.loss.L2Loss()
net = nn.Sequential()
net.add(nn.Dense(1))
net.initialize(mxnet.init.Normal(sigma=0.01), ctx=ctx)
trainer = gluon.Trainer(net.collect_params(), 'sgd', {'learning_rate': 0.001})

for (i, iter_data) in enumerate(iter):
    data = iter_data.data[0]
    label_data = data[:, 8]
    train_data = data[:, 3]
    with autograd.record():
        l = loss(net(train_data), label_data)
    l.backward()
    trainer.step(100)
    print(l.mean().asnumpy())

die Daten der USA Gehäuse Preis, Daten wie diese:

-122.23,37.88,41.0,880.0,129.0,322.0,126.0,8.3252,452600.0,IN DER NÄHE VON BAY -122.22,37.86,21.0,7099.0,1106.0,2401.0,1138.0,8.3014,358500.0,IN DER NÄHE VON BAY -122.24,37.85,52.0,1467.0,190.0,496.0,177.0,7.2574,352100.0,IN DER NÄHE VON BAY -122.25,37.85,52.0,1274.0,235.0,558.0,219.0,5.6431,341300.0,IN DER NÄHE VON BAY -122.25,37.85,52.0,1627.0,280.0,565.0,259.0,3.8462,342200.0,IN DER NÄHE VON BAY -122.25,37.85,52.0,919.0,213.0,413.0,193.0,4.0368,269700.0,IN DER NÄHE VON BAY -122.25,37.84,52.0,2535.0,489.0,1094.0,514.0,3.6591,299200.0,IN DER NÄHE VON BAY -122.25,37.84,52.0,3104.0,687.0,1157.0,647.0,3.12,241400.0,IN DER NÄHE VON BAY -122.26,37.84,42.0,2555.0,665.0,1206.0,595.0,2.0804,226700.0,IN DER NÄHE VON BAY -122.25,37.84,52.0,3549.0,707.0,1551.0,714.0,3.6912,261100.0,IN DER NÄHE VON BAY -122.26,37.85,52.0,2202.0,434.0,910.0,402.0,3.2031,281500.0,IN DER NÄHE VON BAY -122.26,37.85,52.0,3503.0,752.0,1504.0,734.0,3.2705,241800.0,IN DER NÄHE VON BAY

das Ergebnis ist das, was mich verwirrend:

[1.4657609 e+10] [2.184351 e+17] [7.357278 e+24] [1.0737887 e+32] [nan] [nan] ...

Also, was ist Los mit meinem code?