1、简介
今天主要解析MONAI中第一个例程:Medical Image Classification Tutorial with the MedNIST Dataset。MedNIST是从 TCIA, the RSNA Bone Age Challenge, and the NIH Chest X-ray dataset 收集和整理的数据集(Dr. Bradley J. Erickson M.D., Ph.D)。因为图像分辨率低、所需计算资源少,MdNIST非常适合作为初学者理解、掌握和评估人工智能算法的数据集。
2、代码详解
2.1 建立环境
(1) 首先安装MONAI软件包:
!pip install monai # 安装MONAI软件包
(2)导入MONAI、matplotlib等软件包
#导入monai和matplotlib软件包,如果没有安装则安装这两个软件包
!python -c "import monai" || pip install -q "monai-weekly[pillow, tqdm]"
!python -c "import matplotlib" || pip install -q matplotlib
#魔法命令,不用新建窗口,直接显示图形
%matplotlib inline
初学者不用过于关心这段代码的细节,只要知道通过这三条语句可以确保安装了MONAI和matplotlib软件包并导入当前环境。
(3)导入其他常用软件包及MONAI相关模块
import os # 用于目录及文件操作,常用指令有os.listdirs(),os.path.join(),os.path.exists()
import shutil # 比os权限更高,可以删除目录
import tempfile # 临时文件操作
import matplotlib.pyplot as plt #数据可视化操作
import PIL # 图像处理库
import torch # 一种深度学习框架
from torch.utils.tensorboard import SummaryWriter # 记录训练过程中的统计信息,用于可视化训练过程
import numpy as np # 一种常用的矩阵数值计算的库
from sklearn.metrics import classification_report # 一种经典的机器学习软件库skleran,生成模型指标报告
初学者可以了解下:
os、shutil和tempfile是用来处理目录和文件的,包括文件和目录的建立与删除;numpy是向量化数值计算库,可以加快向量运算;matplotlib.pyplot 可以显示图形和数据可视化;PIL是图像处理库;torch是深度学习框架,深度学习模型的建立、训练和评估都需要该处理框架;sklearn.metric 提供了评估分类效果的函数。
from monai.apps import download_and_extract # 下载和提取数据集
from monai.config import print_config # 显示monai的配置信息,可以根据需要安装选装模块
from monai.data import decollate_batch, DataLoader# decollate_batch:将批量数据拆成单独的数据;DataLoader数据加载器
from monai.metrics import ROCAUCMetric #ROC AUC指标
from monai.networks.nets import DenseNet121 # 稠密卷积网络,2017年优秀CVPR文章
from monai.transforms import ( # monai的预处理函数
Activations,#激活函数
EnsureChannelFirst,#确保数据通道在第一位,满足pytorch数据格式要求
AsDiscrete,# 将数据转换为离散值
Compose,# 通过compose得到变换的结果,
LoadImage,# 装载图像
RandFlip,# 随机翻转
RandRotate,# 随机旋转
RandZoom,# 随机放大
ScaleIntensity,# 改变图像的灰度值
)
from monai.utils import set_determinism # 用来设定随机数状态
print_config() # 打印monai的配置信息
monai提供了深度学习所涉及的数据加载、预处理、评估等一系列操作。
2.2 设置数据目录
因为Kaggle的输出目录为:'/kaggle/working/',因此为了保证后续操作能够正常执行,可以把数据目录设置为'/kaggle/working/'。
root_dir = r'/kaggle/working/'# r字符串可以保证/不是转义字符,使得目录写法与真实状态一致
不要忽略目录字符串前的字符r。
2.3 下载数据集
通过以下代码,可以从数据集网站下载数据集压缩包,并解压到kaggle的当前目录。
resource = "https://github.com/Project-MONAI/MONAI-extra-test-data/releases/download/0.8.1/MedNIST.tar.gz"
md5 = "0bc7306e7427e00ad1c5526a66

最低0.47元/天 解锁文章
6616

被折叠的 条评论
为什么被折叠?



