实践过程分享 体验1小时入门AI工程师课程(课程学习和实践部分)
活动帖
https://bbs.huaweicloud.com/forum/thread-103029-1-1.html
参考资料
https://blog.csdn.net/a493823882/article/details/87888509
https://bbs.huaweicloud.com/blogs/204390
https://www.mindspore.cn/news/newschildren?id=354
实践过程分享
使用conda新建符合版本要求的环境,并进入新环境。(配置系统环境变量的方法也挺好的,但有些担心新手在配置时会有些困扰。)
conda create -n hwms-py37 python=3.7.5
conda activate hwms-py37
并查看python版本
python -V
Python 3.7.5
根据教程安装 mindspore 、opencv-python 和 matplotlib
pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.0.1/MindSpore/cpu/windows_x64/mindspore-1.0.1-cp37-cp37m-win_amd64.whl --trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
查看mindspore版本
python -c "import mindspore;print(mindspore.__version__)"
1.0.1
下载工程和数据集文件,并解压
切换工作目录 并 执行训练
cd /d d:\MindSporePetClassification\code
python preprocessing_dataset.py D:\MindSporePetClassification\kagglecatsanddogs_3367a.zip
python train.py
报错
ValueError: num_parallel_workers exceeds the boundary between 1 and 6!
(hwms-py37) d:\MindSporePetClassification\code>python train.py
start cache feature!
Traceback (most recent call last):
File "train.py", line 52, in <module>
data, step_size = extract_features(backbone_net, args_opt.dataset_path, config)
File "d:\MindSporePetClassification\code\src\dataset.py", line 84, in extract_features
train_dataset = create_dataset(dataset_path=os.path.join(dataset_path, "train"), do_train=True, config=config)
File "d:\MindSporePetClassification\code\src\dataset.py", line 41, in create_dataset
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=8, shuffle=True)
File "D:\Develop\Anaconda3\envs\hwms-py37\lib\site-packages\mindspore\dataset\engine\validators.py", line 50, in new_method
validate_dataset_param_value(nreq_param_int, param_dict, int)
File "D:\Develop\Anaconda3\envs\hwms-py37\lib\site-packages\mindspore\dataset\core\validator_helpers.py", line 350, in validate_dataset_param_value
check_num_parallel_workers(param_dict.get(param_name))
File "D:\Develop\Anaconda3\envs\hwms-py37\lib\site-packages\mindspore\dataset\core\validator_helpers.py", line 338, in check_num_parallel_workers
raise ValueError("num_parallel_workers exceeds the boundary between 1 and {}!".format(cpu_count()))
ValueError: num_parallel_workers exceeds the boundary between 1 and 6!
解决思路
根据变量名称 num_parallel_workers,可知是并行计算的参数需要做出调整
参考前辈写出的博文 https://bbs.huaweicloud.com/blogs/204390
对相关参数进行更改后,成功执行训练。
备注:我的CPU是6核的,我把 num_parallel_workers 改成了 3,一边训练一边后悔。CPU的风扇呼呼的吹。。。现在觉得改成 1,是最稳的,慢点就慢点,挺好。