Python Tflearn网络始终建模为线性函数

Python Tflearn网络始终建模为线性函数,python,tflearn,Python,Tflearn,我试图用一个神经网络来模拟一个f(x)=x^2图,我在tflearn中制作它。 但即使使用多个图层,当我从模型中绘制一些点时,它也总是绘制一条直线 import numpy as np from matplotlib import pyplot import tflearn x = list() y = list() for i in range(100): x.append(float(i)) y.append(float(i**2)) features = np.arra

我试图用一个神经网络来模拟一个f(x)=x^2图,我在tflearn中制作它。 但即使使用多个图层,当我从模型中绘制一些点时,它也总是绘制一条直线

import numpy as np
from matplotlib import pyplot

import tflearn

x = list()
y = list()
for i in range(100):
    x.append(float(i))
    y.append(float(i**2))
features = np.array(x).reshape(len(x),1)
labels = np.array(y).reshape(len(y), 1)

g = tflearn.input_data(shape=[None, 1])
g = tflearn.fully_connected(g, 128)
g = tflearn.fully_connected(g, 64)
g = tflearn.fully_connected(g, 1)
g = tflearn.regression(g, optimizer='sgd', learning_rate=0.01,
                        loss='mean_square')

# Model training
m = tflearn.DNN(g)
m.fit(features, labels, n_epoch=100, snapshot_epoch=False)

x = list()
y = list()
for i in range(100):
    x.append(i)
    y.append(float(m.predict([[i]])))

pyplot.plot(x, y)

pyplot.plot(features, labels)

pyplot.show()


绿线是x^2图形,蓝线是模型。

默认情况下
tflearn。完全连接的
具有
activation='linear'
,因此无论堆叠多少层,都只能近似线性函数

尝试不同的激活功能,例如
tflearn.fully_connected(g,128,activation='tanh')
并将输出层保留为
activation='linear'
,这样它就不会剪裁您的输出