代码在带有Tensor流的python 3.5.2中。神经网络返回的精确度在.10和5.00之间,较高的值倾向于训练数据的准确度大约为6。我无法判断神经网络是否合法地比随机猜测更糟或如果我使用的准确度代码有一个我看不到的严重错误。
神经网络由5层组成:
使用默认的Adam优化器
我对我的准确度计算非常怀疑,因为我的内容与我所看到的因RAM限制而有所不同。精度计算同时确保列车的准确性和测试数据。
# app/controllers/invitations_controller.rb
class Devise::InvitationsController < DeviseController
...
before_action :is_admin?, :only => [:new, :create]
...
private
def is_admin?
current_user.role == 'admin'
end
end
这是输出样本:
完整的代码如下(对不起,我添加了很多评论供我自己使用):
acc_total = 0
correct = tf.equal(tf.argmax(prediction, 1), tf.argmax(y, 1))
accuracy = tf.reduce_mean(tf.cast(correct, 'float'))
for _ in range(int(mnist.test.num_examples/batch_size)):
test_x, test_y = mnist.test.next_batch(batch_size)
acc = accuracy.eval(feed_dict={x: test_x, y: test_y})
acc_total += acc
print('Accuracy:',acc_total*batch_size/float(mnist.test.num_examples),end='\r')
print('Epoch', epoch, 'current test set accuracy : ',acc_total*batch_size/float(mnist.test.num_examples))
acc_total=0
correct = tf.equal(tf.argmax(prediction, 1), tf.argmax(y, 1))
accuracy = tf.reduce_mean(tf.cast(correct, 'float'))
for _ in range(int(mnist.train.num_examples/batch_size)):
train_x, train_y = mnist.train.next_batch(batch_size)
acc = accuracy.eval(feed_dict={x: train_x, y: train_y})
acc_total += acc
print('Accuracy:',acc_total*batch_size/float(mnist.train.num_examples),end='\r')
print('Epoch', epoch, 'current train set accuracy : ',acc_total*batch_size/float(mnist.test.num_examples))
答案 0 :(得分:2)
由于4个原因,CNN的结果很低:
accuracy.eval(feed_dict={x: test_x, y: test_y})
导致网络在其准确性评估中表现不足mnist.test.num_examples
而不是正确的mnist.train.num_examples
接收数据集的大小,并导致无意义的准确度值超过100%