BUG集合

读取文件夹下子文件夹的图片

 path = 'E:\\ppppppp\\a\\testdata'
    dirs = os.listdir(path)
    for i in dirs:
        picpath = os.path.join(path, i)
        pic = os.listdir(picpath)
        i = 0
        pic.sort(key=lambda x: int(x[:-4]))
        for j in pic:
            smallpath = os.path.join(picpath,j)
            img0 = cv.imread(smallpath, cv.IMREAD_ANYCOLOR)

出现的错误是img0为None,没有读进图片,后来把路径打印出来,发现路径写错了,同时路径最好不能有中文。

img0 = cv.imread(smallpath, cv.IMREAD_ANYCOLOR)
img = cv.cvtColor(img0, cv.COLOR_BGR2GRAY)
array = np.asarray(img, dtype="float32")
array = cv.resize(array, (30, 30))

将图片reshape后的大小不是30x30,发现读取的图片是RGB具有三个通道,应该转化成灰度图的形式。

ValueError: Cannot feed value of shape () for Tensor ‘Placeholder_1:0’, which has shape '(?, 3)出现了这个错误
我的代码如下

feed_dict_train_op = {x: data[0:30],y_: label[0:30], keep_prob: 1}

后来发现是读取的label是一维的,而我需要输入的是三维的。在读取txt文件的时候,读取到的3,4,5,并不能传递给神经网络告诉它就这就你的标签,所以就需要用到one_hot这个函数对它进行编码,生成[100,010,001]这种形式

 b = tf.cast(lab, dtype=tf.int32)
 y = tf.one_hot(b, 3, on_value=1, off_value=None)

我用上面两行函数进行编码,在one hot之前,必须要把它的格式进行转换
之后在用神经网络进行训练的时候,依然报错
TypeError: The value of a feed cannot be a tf.Tensor object. Acceptable feed values include Python 。。。
大概意识就是,one hot生成的格式是tensor型的,和我的网络不匹配,需要转化成array型的

lab = y.eval()

一行代码搞定,它又又又报错了
“Cast string to int64 is not supported”
查了好久发现之前在读取txt文件生成label的时候,读取的3,4,5不是int型,需要强制转化一下子。终于。。。运行成功

bug总是一个接着一个接着一个接着一个接着一个接着一个接着一个接着一个接着一个。。。。。改完
还是基本功不扎实哇 \(╯-╰)/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值