1.项目介绍
Kaggle 上人类蛋白质图谱 - 单细胞分类第七名解决方案的代码。
该方法的描述可以在kaggle 讨论中的这篇文章中找到。
2.配置过程
2.1 下载项目
(1)下载整个项目
git clone https://github.com/pfnet-research/kaggle-hpa-2021-7th-place-solution
(2)下载项目中其他文件
通过步骤一下载下来的项目中文件夹“HPA-Cell-Segmentation”为空需要单独下载该文件夹下的文件,该文件是细胞分割的一些依赖包。首先进入到该文件夹目录下,然后通过下载指令下载:
git clone https://github.com/CellProfiling/HPA-Cell-Segmentation.git
下载完成后进入目录下面运行“install.sh”文件实现安装,指令:
sh install.sh
运行后会自动安装很多包,如果有提示报错(WARNING只是属于警告,不是报错,ERROE才是报错),重复执行几次后如果报错依旧没有解决则跳过不管,后续有办法解决。
2.2 安装依赖包
2.2.1总体思路。
通过运行代码,提示缺什么包就安装什么包。指令:
pip install 缺少的包名
2.2.2数据处理程序依赖包
(1)首先把数据集和对应的train.csv和kaggle_2021.tsv下载到data/input/文件夹下面(你提供的数据集只是一部分,所以kaggle_2021.tsv要删除掉其他图片,我已在项目中处理好了,你可以直接用处理好的kaggle_2021.tsv)。
(2)运行数据处理程序“/test_show/kaggle-hpa-2021-7th-place-solution/scripts/hpa_segmenter/create_cell_mask.py” 进行数据处理,运行指令如下(更多指令已经在会议录屏中有讲解):
python scripts/hap_segmenter/create_cell_mask.py resize_image --input_directory data/input/hpa-single-cell-image-classification.zip/train --output_directory data/input/hpa-768768.zip --image_size 768
如果提示缺少包就通过pip install 来安装,如果提示“hpacellseg”这个包错误,则跳转到2.3步,如果提示“somen”这个包错误,则跳转到2.4步,提示缺少预训练模型则跳转到2.5步。
2.2.3 训练程序依赖包
运行两个训练文件“/kaggle-hpa-2021-7th-place-solution/scripts/cam_consistency_training/run.py”和“/kaggle-hpa-2021-7th-place-solution/scripts/cell_crop/run.py”文件,运行指令:
python scripts/cam_consistency_training/run.py train --config_path scripts/cam_consistency_training/configs/${CONFIG_NAME}.yaml
会提示:albumentations,fire,pandas 等包没安装,通过pip install 来安装,如果提示“hpacellseg”这个包错误,则跳转到2.3步,如果提示“somen”这个包错误,则跳转到2.4步,提示缺少预训练模型则跳转到2.5步。
2.3“hpacellseg”这个包错误的解决
这个包不是python官方包,而是“HPA-Cell-Segmentation”文件夹下的包。
(1)给代码添加系统路径:
import sys
sys.path.append('/root/autodl-tmp/kaggle-hpa-2021-7th-place-solution')
然后将所有import hpacellseg
相关的都改成引用“HPA-Cell-Segmentation”文件下的文件,由于import不支持“-”这个符号,所以将“HPA-Cell-Segmentation”改名为“HPA_Cell_Segmentation”,这样就可以开始修改下面的代码了,上图是修改前的,下图是修改后的,列如import hpacellseg.cellsegmentator as cellsegmentator
改成import HPA_Cell_Segmentation.hpacellseg.cellsegmentator as cellsegmentator
。
2.4“somen”这个包错误的解决
这个错误产生的原因是somen文件夹的目录结构有问题,文件夹是两层,somen.py文件在somen文件夹下。修改的方法:
(1)文件头是所有import somen.XXX
的地方都改成import somen.somen.XXX
。
(2)代码中所有使用somen.XXX的地方都改成somen.somen.XXX。
2.5提示缺少预训练模型
(待更新)