MNIST Tensorflow 的 类 更改数量
Change number of classes of MNIST Tensorflow
您好,我正在尝试使用 MNIST 和 softmax 改编 Tensorflow 的初学者教程。在本教程中,您有 10 个类别(用于数字 0-9)。
现在,使用不同的数据集 (EMNIST),我有 62 类 个数字和字母。
我在原始示例模型中的内容是:
x = tf.placeholder(tf.float32, [None, 784])
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
y = tf.matmul(x, W) + b`
其中784代表28x28图片的总像素,10是类的个数。我想要的是:
x = tf.placeholder(tf.float32, [None, 784])
W = tf.Variable(tf.zeros([784, 62]))
b = tf.Variable(tf.zeros([62]))
y = tf.matmul(x, W) + b`
为 62 类。
但是当我到达代码的这一部分时,将调用下一批执行:
for _ in range(1000):
batch_xs, batch_ys = mnist.train.next_batch(100)
sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})
我收到这个错误...
追溯(最近一次通话最后一次):
File "calligraphy.py", line 77, in <module>
tf.app.run(main=main, argv=[sys.argv[0]] + unparsed)
File "C:\Users\Willy Barales\Anaconda3\lib\site-packages\tensorflow\python\platform\app.py", line 48, in run
_sys.exit(main(_sys.argv[:1] + flags_passthrough))
File "calligraphy.py", line 64, in main
sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})
File "C:\Users\Willy Barales\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 789, in run
run_metadata_ptr)
File "C:\Users\Willy Barales\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 975, in _run
% (np_val.shape, subfeed_t.name, str(subfeed_t.get_shape())))
ValueError: Cannot feed value of shape (100, 10) for Tensor 'Placeholder_1:0', which has shape '(?, 62)'
关于如何更改此示例的数据集的任何想法?
我是否必须更改实施 .next_batch() 的 mnist.py 文件中的内容?
据我所知,EMNIST 的格式与 MNIST 完全相同。
提前致谢。
关于新数据集的信息:
http://biometrics.nist.gov/cs_links/EMNIST/Readme.txt
我所要做的就是在 mnist.py 文件中编辑从标签创建一个热向量的部分,因为这些是对应于 batch_ys 的部分,多亏了启发内拉。
def extract_labels(f, one_hot=False, num_classes=62)
当然,正如我在问题中首先提到的那样,更改模型中 类 的数量。
您好,我正在尝试使用 MNIST 和 softmax 改编 Tensorflow 的初学者教程。在本教程中,您有 10 个类别(用于数字 0-9)。 现在,使用不同的数据集 (EMNIST),我有 62 类 个数字和字母。 我在原始示例模型中的内容是:
x = tf.placeholder(tf.float32, [None, 784])
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
y = tf.matmul(x, W) + b`
其中784代表28x28图片的总像素,10是类的个数。我想要的是:
x = tf.placeholder(tf.float32, [None, 784])
W = tf.Variable(tf.zeros([784, 62]))
b = tf.Variable(tf.zeros([62]))
y = tf.matmul(x, W) + b`
为 62 类。 但是当我到达代码的这一部分时,将调用下一批执行:
for _ in range(1000):
batch_xs, batch_ys = mnist.train.next_batch(100)
sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})
我收到这个错误... 追溯(最近一次通话最后一次):
File "calligraphy.py", line 77, in <module>
tf.app.run(main=main, argv=[sys.argv[0]] + unparsed)
File "C:\Users\Willy Barales\Anaconda3\lib\site-packages\tensorflow\python\platform\app.py", line 48, in run
_sys.exit(main(_sys.argv[:1] + flags_passthrough))
File "calligraphy.py", line 64, in main
sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})
File "C:\Users\Willy Barales\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 789, in run
run_metadata_ptr)
File "C:\Users\Willy Barales\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 975, in _run
% (np_val.shape, subfeed_t.name, str(subfeed_t.get_shape())))
ValueError: Cannot feed value of shape (100, 10) for Tensor 'Placeholder_1:0', which has shape '(?, 62)'
关于如何更改此示例的数据集的任何想法? 我是否必须更改实施 .next_batch() 的 mnist.py 文件中的内容?
据我所知,EMNIST 的格式与 MNIST 完全相同。 提前致谢。
关于新数据集的信息: http://biometrics.nist.gov/cs_links/EMNIST/Readme.txt
我所要做的就是在 mnist.py 文件中编辑从标签创建一个热向量的部分,因为这些是对应于 batch_ys 的部分,多亏了启发内拉。
def extract_labels(f, one_hot=False, num_classes=62)
当然,正如我在问题中首先提到的那样,更改模型中 类 的数量。