0
我是新来的机器学习和Tensorflow,并希望做一个简单的二维分类与数据,不能线性分离。张量流的非线性分类
在左侧,您可以看到模型的训练数据。 右侧显示训练模型预测的内容。
截至目前,我过度配合我的模型,所以每一个可能的输入都被输入到模型中。 我的预期结果将是非常高的准确性,因为模型已经“知道”每个答案。 不幸的是,我所使用的深度神经网络只能通过线性分频器进行分离,这不符合我的数据。
这是我训练我的型号:
def testDNN(data):
"""
* data is a list of tuples (x, y, b),
* where (x, y) is the input vector and b is the expected output
"""
# Build neural network
net = tflearn.input_data(shape=[None, 2])
net = tflearn.fully_connected(net, 100)
net = tflearn.fully_connected(net, 100)
net = tflearn.fully_connected(net, 100)
net = tflearn.fully_connected(net, 2, activation='softmax')
net = tflearn.regression(net)
# Define model
model = tflearn.DNN(net)
# check if we already have a trained model
# Start training (apply gradient descent algorithm)
model.fit(
[(x,y) for (x,y,b) in data],
[([1, 0] if b else [0, 1]) for (x,y,b) in data],
n_epoch=2, show_metric=True)
return lambda x,y: model.predict([[x, y]])[0][0]
大部分是从tflearn的例子取,所以我完全不明白,每一行做什么。
试试增加n_epoch? – frankyjuang
增加n_epoch并不会改变精度,大约是50%。像硬币翻转会。 – RincewindWizzard
不确定这是否是一个特定的模型选择,您不希望在您的初始三个线性图层之后出现非线性,或者默认情况下tf-learn放置(我对tf-learn知之甚少),但应具有非线性帮帮我。 – Akash