【问题标题】:read SVHN dataset in tensorflow在 tensorflow 中读取 SVHN 数据集
【发布时间】:2017-10-27 14:23:42
【问题描述】:

我尝试在本教程中训练街景门牌号 (SVHN) 数据 (Convolutional Neural Networks) 我用过

scipy.io.loadmat

但它不起作用,并给我这个错误::

TypeError: Expected string, got {'header': b'MATLAB 5.0 MAT-file, Platform: GLNXA64, Created on: Mon Dec 5 21:09:26 2011', 'version': '1.0', 'globals': [], 'X': array([[[[ 33, 84, 19, ..., 92, 190, 216], [30, 76, 54, ..., 78, 188, 217], [ 38, 59, 110, ..., 101, 191, 212]],

    [[ 15,  86,  20, ...,  94, 205, 221],
     [ 23,  73,  52, ...,  82, 203, 222],
     [ 19,  66, 111, ..., 105, 206, 217]],

    [[ 15,  77,  25, ..., 114, 220, 226],
     [ 17,  78,  57, ..., 101, 218, 227],
     [ 19,  56, 116, ..., 125, 220, 221]],

    ..., 
    [[ 72,  90,  65, ..., 200, 229, 200],
     [ 65,  78, 144, ..., 201, 231, 199],
     [ 56,  69, 223, ..., 203, 224, 191]],

    [[ 82,  88,  78, ..., 192, 229, 193],
     [ 77,  77, 148, ..., 193, 229, 188],
     [ 57,  67, 218, ..., 195, 224, 182]],

    [[ 89,  88,  98, ..., 190, 229, 197],
     [ 79,  78, 158, ..., 191, 228, 189],
     [ 59,  66, 220, ..., 193, 223, 186]]],


   [[[ 28,  85,  21, ...,  92, 183, 204],
     [ 39,  77,  53, ...,  78, 182, 205],
     [ 35,  61, 110, ..., 103, 186, 202]],

    [[ 14,  83,  19, ...,  93, 200, 210],
     [ 25,  73,  52, ...,  80, 199, 211],
     [ 22,  64, 106, ..., 106, 201, 208]],

    [[ 14,  74,  25, ..., 111, 218, 220],
     [ 20,  69,  56, ...,  98, 217, 221],
     [ 17,  59, 111, ..., 124, 218, 217]],

    ..., 
    [[ 40,  89,  63, ..., 181, 227, 201],
     [ 39,  82, 137, ..., 180, 228, 199],
     [ 50,  64, 208, ..., 184, 223, 193]],

    [[ 67,  88,  91, ..., 177, 227, 195],
     [ 58,  79, 153, ..., 176, 226, 191],
     [ 52,  70, 214, ..., 180, 222, 186]],

    [[ 83,  88, 130, ..., 183, 228, 196],
     [ 78,  81, 180, ..., 182, 224, 190],
     [ 60,  67, 229, ..., 187, 221, 186]]],


   [[[ 40,  83,  21, ...,  99, 171, 198],
     [ 41,  76,  53, ...,  84, 170, 198],
     [ 38,  60, 110, ..., 112, 175, 197]],

    [[ 18,  78,  20, ...,  94, 189, 202],
     [ 21,  77,  51, ...,  81, 189, 202],
     [ 26,  58, 106, ..., 110, 193, 201]],

    [[ 16,  61,  22, ..., 107, 213, 212],
     [ 17,  50,  52, ...,  94, 213, 211],
     [ 23,  54, 106, ..., 123, 215, 210]],

    ..., 
    [[ 23,  90,  79, ..., 167, 231, 203],
     [ 29,  85, 147, ..., 166, 230, 200],
     [ 45,  63, 210, ..., 171, 226, 196]],

    [[ 35,  88, 125, ..., 172, 229, 198],
     [ 42,  83, 181, ..., 171, 226, 194],
     [ 44,  66, 230, ..., 176, 223, 191]],

    [[ 72,  85, 178, ..., 185, 227, 195],
     [ 69,  82, 218, ..., 184, 223, 190],
     [ 53,  70, 254, ..., 189, 220, 187]]],


   ..., 
   [[[ 86, 100,  88, ...,  99, 187, 233],
     [ 81,  98, 162, ...,  94, 185, 226],
     [ 75,  72, 237, ..., 110, 186, 228]],

    [[ 87,  98,  89, ...,  96, 204, 230],
     [ 82,  94, 163, ...,  91, 202, 224],
     [ 71,  76, 238, ..., 109, 199, 225]],

    [[ 82,  95,  84, ..., 108, 217, 228],
     [ 79,  93, 156, ..., 103, 217, 223],
     [ 65,  73, 230, ..., 124, 210, 221]],

    ..., 
    [[104, 104,  62, ..., 210, 204, 198],
     [104, 104, 142, ..., 207, 200, 196],
     [ 87,  86, 227, ..., 204, 195, 190]],

    [[104, 102,  67, ..., 206, 196, 184],
     [105, 102, 144, ..., 202, 193, 183],
     [ 81,  87, 226, ..., 200, 189, 177]],

    [[103, 100,  74, ..., 203, 196, 189],
     [105, 101, 145, ..., 197, 193, 187],
     [ 78,  78, 225, ..., 199, 189, 182]]],


   [[[ 84, 103,  88, ...,  94, 186, 231],
     [ 86, 104, 164, ...,  91, 184, 226],
     [ 64,  79, 240, ..., 103, 185, 228]],

    [[ 86, 106,  87, ...,  94, 198, 229],
     [ 79, 104, 160, ...,  91, 197, 224],
     [ 72,  79, 237, ..., 104, 194, 225]],

    [[ 82, 103,  88, ..., 110, 211, 227],
     [ 76, 103, 159, ..., 107, 211, 223],
     [ 72,  87, 237, ..., 121, 204, 222]],

    ..., 
    [[110, 103,  60, ..., 219, 222, 195],
     [103, 104, 141, ..., 218, 216, 194],
     [ 84,  86, 230, ..., 215, 212, 186]],

    [[106, 103,  61, ..., 218, 214, 181],
     [105, 103, 141, ..., 215, 209, 181],
     [ 85,  87, 228, ..., 212, 205, 173]],

    [[106, 105,  65, ..., 212, 208, 186],
     [104,  99, 143, ..., 209, 205, 183],
     [ 86,  81, 226, ..., 209, 200, 177]]],


   [[[ 85, 103,  84, ...,  88, 190, 230],
     [ 88, 106, 160, ...,  87, 188, 226],
     [ 68,  82, 238, ...,  94, 190, 227]],

    [[ 89, 103,  81, ...,  85, 199, 230],
     [ 82, 105, 154, ...,  84, 197, 226],
     [ 72,  87, 233, ...,  93, 194, 227]],

    [[ 85, 104,  87, ..., 105, 208, 229],
     [ 79, 106, 158, ..., 103, 208, 225],
     [ 67,  91, 238, ..., 114, 201, 226]],

    ..., 
    [[111, 113,  63, ..., 217, 232, 190],
     [104, 103, 144, ..., 217, 227, 190],
     [ 87,  88, 235, ..., 214, 223, 181]],

    [[109, 104,  62, ..., 221, 226, 178],
     [105, 104, 143, ..., 220, 221, 177],
     [ 86,  88, 232, ..., 219, 216, 169]],

    [[103, 103,  63, ..., 218, 218, 181],
     [106,  98, 145, ..., 217, 213, 178],
     [ 79,  80, 231, ..., 218, 209, 171]]]], dtype=uint8), 'y': array([[1],
   [9],
   [2],
   ..., 
   [1],
   [6],
   [9]], dtype=uint8)} of type 'dict' instead.

我无法理解问题所在,以及解决方案是什么。

【问题讨论】:

  • 您好!想知道你完成了吗?你能分享你的github吗?我很好奇你是怎么做到的,因为我也在尝试。

标签: python matlab tensorflow


【解决方案1】:

该教程使用从文件中读取数据的方法,这对于数据集太大而无法保留在内存中的情况很典型。教程的那部分有很多步骤,主要在cifar10_input.py 中实现,它们通常遵循here 的步骤。

cifar10_input.py 获取要从中读取数据的文件名字符串列表。没有看到更多你的代码,我猜这就是你得到这个特定错误的原因。

您需要确保 SVHN .mat 文件具有正确的预期二进制格式(我怀疑是这种情况),然后将 cifar10_input.py 中的文件名交换为 cifar10 二进制文件,或者重写 cifar10_train.py使用占位符和 feed_dict 参数代替读取管道。请记住,SVHN 需要缩减到与 cifar10_input.py 中的 cifar 图像相同的大小。此外,对于 feed_dict 方法,SVHN 数据集可能太大。

【讨论】:

    猜你喜欢
    • 2016-07-22
    • 1970-01-01
    • 1970-01-01
    • 2020-09-21
    • 1970-01-01
    • 2021-10-17
    • 2019-09-07
    • 2017-05-07
    • 1970-01-01
    相关资源
    最近更新 更多