针对很多人在学习Theano深度学习库时,遇到无法导入mnist数据库问题,在此给出一种解决方法。具体出现的问题及解决方案如下图所示:
成功导入MNIST数据的代码,加入了encoding='bytes',因为,Python 3.X带有3种字符串对象类型——一种用于文本数据,两种用于二进制数据:
1. str表示Unicode文本(8位的和更宽的)。
2. bytes表示二进制数据。
3. bytearray,是一种可变的bytes类型。
具体可参见help(encodings)。
Python现在在文本文件和二进制文件之间做了一个明显的独立
于平台的区分:
文本文件
当一个文件以文本模式打开的时候,读取其数据会自动将其内容解码(每个平台
一个默认的或一个提供的编码名称),并且将其返回为一个s t r,写入会接受一个
s t r,并且在将其传输到文件之间自动编码它。文本模式的文件还支持统一的行尾
转换和额外的编码特定参数。根据编码名称,文本文件也自动处理文件开始处的字
节顺序标记序列(稍后详细介绍)。
二进制文件
通过在内置的open调用的模式字符串参数添加一个b(只能小写),以二进制模式
打开一个文件的时候,读取其数据不会以任何方式解码它,而是直接返回其内容
raw并且未经修改,作为一个bytes对象;写入类似地接受一个bytes对象,并且将
其传送到文件中而未经修改。二进制模式文件也接受一个bytearray对象作为写入
文件中的内容。