2017-05-15 6 views
0

私はtflearnのDNNを使用しています。私は、私の特徴や寓話をカテゴリではなく数字に変更したいと思います。TFlearn to categorical

は、ここに私のネットである:

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について知っているが、私は、このメソッドを注入する方法を知りません。

EDIT 感謝: は、私のような、いくつかのことを試してみました:

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 

問題?

答えて

0

私には同様のエラーがあり、非常に高い損失もあります。 train_goalの代わりにtrain_goal.T [0]を使用してみてください。 to_categoricalの入力yが(n、)

のような形をしていることを確認してください
関連する問題