TFlearn to categorical

时间:2017-05-15 06:40:33

标签: tensorflow neural-network tflearn

我正在使用tflearn的DNN,我想将我的功能和标签更改为分类而不是数字。

这是我的网:

x = tf.placeholder(dtype= tf.float32, shape=[None, 6], name='x')
# Build neural network
input_layer = tflearn.input_data(shape=[None, 6])
net = input_layer
net = tflearn.fully_connected(net, 128, activation='relu')
net = tflearn.fully_connected(net, 64, activation='relu')
net = tflearn.fully_connected(net, 16, activation='relu')
net = tflearn.fully_connected(net, 2, activation='sigmoid')
net = tflearn.regression(net, optimizer='adam', loss='mean_square', metric='R2')

w = tf.Variable(tf.truncated_normal([2, 2], stddev=0.1))
b = tf.Variable(tf.constant(1.0, shape=[2]))
y = tf.nn.softmax(tf.matmul(net, w) + b, name='y')

model = tflearn.DNN(net, tensorboard_verbose=3)
return model

我知道tflearn.data_utils.to_categorical,但我不知道如何注入这个方法。 感谢

修改 我尝试过几件事,比如:

train_goal = tflearn.data_utils.to_categorical(train_goal, nb_classes=2)
            test_goal = tflearn.data_utils.to_categorical(test_goal, nb_classes=2)

并且还改变了损失:

net = tflearn.regression(net, optimizer='adadelta',  loss='categorical_crossentropy', metric= self.accuracy)

但我的损失超过1:

Training Step: 35  | total loss: 1.64734 | time: 1.322s
| AdaDelta | epoch: 001 | loss: 1.64734 - acc: 1.0000 | val_loss: 1.64313 - val_acc: 1.0000 -- iter: 2204/2204
--
Training Step: 70  | total loss: 1.61961 | time: 0.216s
| AdaDelta | epoch: 002 | loss: 1.61961 - acc: 1.0000 | val_loss: 0.00000 - val_acc: 0.0000 -- iter: 2204/2204
--
Training Step: 105  | total loss: 1.58511 | time: 1.188s
| AdaDelta | epoch: 003 | loss: 1.58511 - acc: 1.0000 | val_loss: 1.57300 - val_acc: 1.0000 -- iter: 2204/2204

问题出在哪里?

1 个答案:

答案 0 :(得分:0)

我有类似的错误,也是一个非常高的损失。 尝试使用train_goal.T [0]而不是train_goal。 确保to_categorical的输入y具有类似(n,)

的形状