代码之家  ›  专栏  ›  技术社区  ›  Willy Barales Aguilar

改变MNIST张量流的类数

  •  1
  • Willy Barales Aguilar  · 技术社区  · 6 年前

    您好,我正在尝试使用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)'
    

    关于如何更改此示例的数据集,您有什么想法吗? 我必须在mnist中更改一些内容吗。py文件,其中。下一个批处理()是否已实现?

    据我所知,EMNIST的格式与MNIST完全相同。 提前谢谢。

    有关新数据集的信息: http://biometrics.nist.gov/cs_links/EMNIST/Readme.txt

    1 回复  |  直到 6 年前
        1
  •  1
  •   Willy Barales Aguilar    6 年前

    我所要做的就是在mnist中编辑。py文件-从标签创建一个热向量的部分,因为这些是对应于batch_ys的,这要归功于Neijla的启发。

    def extract_labels(f, one_hot=False, num_classes=62)
    

    当然,除此之外,正如我在第一个问题中所述,更改模型中的类数。