关于运行“基于极限学习机ELM的人脸识别程序”代码犯下的一些错误
代码来源 基于极限学习机ELM的人脸识别程序
感谢文章主的分享
我的环境是
- win10
- anaconda Command line client (version 1.6.5)(conda 4.3.30)
- tensorflow-gpu 1.1.0
- python 3.6.2
1. 直接运行代码块,提示“未知引用 import hpelm"
这是因为我的Python环境没有安装hpelm导致的,运行代码pip install hpelm
。第一次安装没有成功,查询发现可能是pip版本问题,升级了pip版本,运行pip3 install hpelm
,安装成功,两次使用的安装命令不同,不知道是不是因为升级了pip版本才安装hpelm成功的。
2. 提示‘import cv2’错误
安装hpelm后,再次运行代码,提示上述错误,因为我的环境没有安装opencv,运行
pip install numpy Matplotlib
-
pip install opencv-python
安装成功即可
3. 提示numpy版本不对
再次运行代码,提示numpy版本不对,提示错误
RuntimeError: module compiled against API version 0xc but this version of numpy is 0xa
网上提示升级numpy版本,方法:
- 运行
pip uninstall numpy
- 运行
pip install -U numpy
安装成功即可。
4. 提示错误'AssertionError: X has wrong dimensionality: expected 10000, found 1'
错误如下:
Traceback (most recent call last):
File "train_hpelm.py", line 38, in <module>
elm.train(np.array(input_data),np.array(output_data))
File "C:\Users\caichangqing\AppData\Local\conda\conda\envs\tensorflow\lib\site-packages\hpelm\elm.py", line 182, in train
X, T = self._checkdata(X, T)
File "C:\Users\caichangqing\AppData\Local\conda\conda\envs\tensorflow\lib\site-packages\hpelm\elm.py", line 533, in _checkdata
(self.nnet.inputs, X.shape[1])
AssertionError: X has wrong dimensionality: expected 10000, found 1
由于路径问题,代码中路径的格式’D:\abc\abc\a',中间''符号被当成转义字符,造成路径错误,应该改成
- D:\\abc\\abc\\a
- 或者 D:/abc/abc/a
5. AttributeError: module 'opencv' has no attribute 'resize'
错误如下:
AttributeError: module 'opencv' has no attribute 'resize'
在代码的引用中,导入opencv是'import opencv as cv2',我的环境是'python 3.6',应该使用'import cv2'导入
6. 读入图片错误
错误如下:
OpenCV Error: Assertion failed (ssize.width > 0 && ssize.height > 0) in cv::resize, file C:\projects\opencv-python\opencv\modules\imgproc\src\resize.cpp, line 4044
Traceback (most recent call last):
File "train_hpelm.py", line 15, in
试了很多,最后发现我下载的人脸库有问题,同样环境下,cv2.imread()可以读取别的图片,不能读取我下载的人脸库图片,cv2.imread()读取后返回值是None。同时,所有不能正确读入图片都会提示该错误。
(后来同学说cv2.imread不能读取gif图片,我下的是这个格式的)
7. 新下载的库,改名就行了
我使用的yale人脸库下载地址
#coding=utf-8 import os path = "D:\\tensorflow\\face\\yale" #更改为你自己的人脸库路径 count = 1 flag = 1 for i in range(1,166): flag = i%11 add_pre=lambda x:'0'+str(x) if len(str(x))==1 else str(x) #加前缀 if(flag == 0 ): flag = 11 files = os.path.join(path, 's{}.bmp'.format(i)) if(os.path.isfile(files)): filename=os.path.splitext(files)[0];#文件名 filetype=os.path.splitext(files)[1];#文件扩展名 Newdir=os.path.join(path,'subject{}_{}'.format(add_pre(count),flag)+filetype);#新的文件路径 os.rename(files,Newdir)#重命名 if(flag == 11): count += 1
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
AI学习笔记——循环神经网络(RNN)的基本概念
目前深度学习和神经网络算法最典型的有两个应用实例,一个是图像识别,一个是语音识别。上一篇文章讲到图形识别的卷积神经网络(CNN)就广泛应用在了图像别方面,而这篇文章就来讲另一个广泛应用于语音识别的算法循环神经网络(RNN)。 如果说CNN通过滤波器识别出图片中空间像素的关系,那么RNN就能够在时间序列的数据中找到规律,从而预测未来。所以RNN与CNN最大的不同就是, RNN的神经元输入的不仅是要有当前时间点的数据,还需要之前时间点的输出结果。因为当前的输出是跟之前(甚至是之后)的输出是相关的。 举一个简单的例子,给你一组数据【1,2,3,4,5,6】,让你将时间窗口向未来移动一步,你很容易就可以得到结果【2,3,4,5,6,7】。你给出答案7,是因为你发现了7跟6的关系,6跟5的关系,一次类推,RNN的基本原理是这样,就是发现时间序列上输入与输出之间的 关系。 1. RNN基本结构 跟普通神经网路的神经元一样,输入和输出之间是一个线性函数和一个非线性的激活函数如图 image.png 只不过在神经元会将输出结果又返回给输入端,如果将这个过程在时间的维度上展开就是这个样子的 image....
- 下一篇
运行“基于极限学习机ELM的人脸识别程序”犯下的一些错误
代码来源:基于极限学习机ELM的人脸识别程序 感谢文章主的分享我的环境是 win10 anaconda Command line client (version 1.6.5)(conda 4.3.30) tensorflow-gpu 1.1.0 python 3.6.2 1. 直接运行代码块,提示“未知引用 import hpelm" 这是因为我的Python环境没有安装hpelm导致的,运行代码pip install hpelm。第一次安装没有成功,查询发现可能是pip版本问题,升级了pip版本,运行pip3 install hpelm,安装成功,两次使用的安装命令不同,不知道是不是因为升级了pip版本才安装hpelm成功的。 2. 提示‘import cv2’错误 安装hpelm后,再次运行代码,提示上述错误,因为我的环境没有安装opencv,运行 pip install numpy Matplotlib pip install opencv-python安装成功即可 3. 提示numpy版本不对 再次运行代码,提示numpy版本不对,提示错误 RuntimeError: modu...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Hadoop3单机部署,实现最简伪集群