ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

《21个项目玩转深度学习》第三章问题总结--Python3.6与2.7的兼容问题

2021-06-14 20:33:13  阅读:186  来源: 互联网

标签:convert 21 兼容问题 -- py randbelow range data


1.TypeError: 'range' object does not support item assignment


  File "D:\Anaconda3\lib\random.py", line 275, in shuffle
    x[i], x[j] = x[j], x[i]

TypeError: 'range' object does not support item assignment

解决方法:找到上述文件(random.py),打开后找到以下代码段:

if random is None:
            randbelow = self._randbelow
            for i in reversed(range(1, len(x))):
                # pick an element in x[:i+1] with which to exchange x[i]
                j = randbelow(i+1)
                x[i], x[j] = x[j], x[i]

在第二行后添加以下语句:

x = list(range(1,len(x)))

即变成:

if random is None:
            randbelow = self._randbelow
            x = list(range(1,len(x))) # add this sentence
            for i in reversed(range(1, len(x))):
                # pick an element in x[:i+1] with which to exchange x[i]
                j = randbelow(i+1)
                x[i], x[j] = x[j], x[i]

就可以运行。

 

2. NameError: name 'xrange' is not defined

解决方法:找到tfreord.py,将其中的xrange都改为range。

原理:Python3中,range()与xrange()相同,使用xrange()函数会报错。

 

3. 'gbk' codec can't decode byte 0xff in position 0: illegal multibyte sequence

解决方法:将tfrecord.py中的下列代码段中读文件的方式由‘r’改成‘rb’,即:

with open(filename, 'r') as f:
    image_data = f.read()

改为:

with open(filename, 'rb') as f:
    image_data = f.read()

此时可以在pic文件中顺利找到5个新生成的文件。

 

4.另外,书中有一段话:下面,在data_prepare文件夹下,使用预先编制好的脚本data-convert.py,将图片转换为tfrecord格式:

python data_convert.py -t pic/ \
    --train-shards 2 \
    --validation-shards 2 \
    --run-threads 2 \
    --dataset-name satellite

有以下两种方法可以实现:

(1)打开anaconda prompt,切换到data_convert.py所在的文件夹,输入上述代码,出现报错:data_convert.py: error: unrecognized arguments: \,需要把上述代码的\全部忽略掉,直接连着写下去这五行代码,即可运行成功,即:

\chapter_3\data_prepare>python data_convert.py -t pic/ --train-shards 2 --validation-shards 2 --num-threads 2 --dataset-name satellite

(2)直接找到data_convert.py,运行该文件即可。

标签:convert,21,兼容问题,--,py,randbelow,range,data
来源: https://blog.csdn.net/GISerLS/article/details/117912038

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有