因为需要用个网络跑一下自己的数据集,找到了这个之前看到的网络,在github也是开源的,问题就是时间已经比较早了(四年前的),很担心因为各种库版本升级而产生的兼容性的问题(后续证明问题真的非常多),特将过程中遇到的所有问题一一记录,给自己提示,也希望对大家有所帮助。
论文:Real-time Convolutional Neural Networks for Emotion and Gender Classification
我在anaconda虚拟环境里配置的,所以命令都优先考虑conda。一开始就是正常地下载github压缩包,解压,根据自己的需求修改了代码,然后开始配置运行的环境。
目录
1、InvalidVersionSpecError: Invalid version spec: =2.7
2、conda install opencv-python==3.2.0没成功
3、ModuleNotFoundError: No module named 'absl'
4、ModuleNotFoundError: No module named 'google.protobuf'
5、ModuleNotFoundError: No module named 'numpy.core._multiarray_umath' ModuleNotFoundError: No module n
6、ModuleNotFoundError: No module named 'typing_extensions'
7、ModuleNotFoundError: No module named 'termcolor'
8、ModuleNotFoundError: No module named 'tensorflow.contrib'
9、ModuleNotFoundError: No module named 'numpy.testing.decorators'
10、ImportError: cannot import name 'imread'
11、pandas.io.common.CParserError: Error tokenizing data. C error: out of memory
12、csv.Error: field larger than field limit (131072)
安装requirement.txt文件时出现的错误,据说是conda的问题。要删除condarc文件里带有:conda-forge的那一行。
这里给出用到的命令:
vim ~/.condarc
dd——删除一行
:wq——保存并退出
InvalidVersionSpecError: Invalid version spec: =2.7 · Issue #10618 · conda/conda · GitHub
改成conda install opencv
conda install absl-py
这里先conda命令不行,根据网上的答案直接输以下命令:
pip uninstall protobuf
pip uninstall google
pip install google
pip install protobuf
这里conda命令也是不太好用,主要就是要升级numpy:
pip show numpy
pip install --upgrade numpy
Successfully installed numpy-1.19.5
conda install typing_extensions
conda install termcolor
tensorflow2以上的版本没有contrib属性,安装tensorflow1的版本
用pip uninstall tensorflow删除了2.4版本的
这里之前numpy版本低才升级的1.19,现在又版本太高,根据建议改成1.17版本的:
pip uninstall numpy
pip install numpy==1.17.0
from scipy.misc import imread
网上可能原因:1、没安装pillow库;2、pillow和scipy安装位置不一致;3、scipy版本过高。
这里我没有pillow库所以先装,问题就没了
conda install pillow
这里是个人问题,因为我的csv文件太大了出的错,改了代码。
解决Python memory error的问题(四种解决方案)_小白白的博客-CSDN博客:
data = pd.read_csv(path, sep=',',engine = 'python',iterator=True)
loop = True
chunkSize = 1000
chunks = []
index=0
while loop:
try:
print(index)
chunk = data.get_chunk(chunkSize)
chunks.append(chunk)
index+=1
except StopIteration:
loop = False
print("Iteration is stopped.")
print('开始合并')
data = pd.concat(chunks, ignore_index= True)
还是文件大产生的问题。
python报错:PyThone field larger than field limit (131072)_Cuzur的博客-CSDN博客
import sys
maxInt = sys.maxsize
decrement = True
while decrement:
decrement = False
try:
csv.field_size_limit(maxInt)
except OverflowError:
maxInt = int(maxInt/10)
decrement = True
如果读入时候和我一样用的是panda.csv_read(),那么最开始还要import csv才能设置csv.field_size_limit()
最终成功跑起来啦。