二、DC/OS 安装前期准备

本文介绍如何将阿里云ECS服务器的数据盘格式化为xfs格式以适配DC/OS安装需求。包括安装xfsprogs工具、创建与格式化分区、挂载数据盘、迁移docker数据及设置开机自动挂载等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

               **DC/OS 安装前期准备**

如果运行df -Th 显示Type为xfs格式,那么就不需要看以下配置,如果不是,则需要更改为xfs格式。
df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.8G 0 1.8G 0% /dev/shm
tmpfs tmpfs 1.8G 292K 1.8G 1% /run
tmpfs tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup
/dev/xvdb1 xfs 100G 33M 100G 1% /var/lib/docker
tmpfs tmpfs 354M 0 354M 0% /run/user/0

本文以阿里云ECS centos7.2为基础:
由于阿里云服务器默认系统盘为ext4,并且不能更改,所以需要新购买一块数据盘。
如果读者是用的自己的服务器,那么可以直接格式化为xfs。
1、安装 XFS 文件系统的工具集:xfsprogs
yum install xfsprogs
2、 为新的数据盘创建分区,以数据盘 /dev/xvdb 为例:
fdisk /dev/xvdb
然后依次输入 n,p,1, 两次回车,w ,来新建分区。操作示例如下:
这里写图片描述
3、格式化数据盘
mkfs.xfs -f /dev/xvdb1
4、挂载数据盘到临时目录
mkdir /mnt/docker
mount /dev/xvdb1 /mnt/docker/
挂在之后,通过df查看:
[root@dcos005 mnt]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/xvda1 ext4 40G 1.6G 36G 5% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.8G 0 1.8G 0% /dev/shm
tmpfs tmpfs 1.8G 292K 1.8G 1% /run
tmpfs tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup
/dev/xvdb1 xfs 100G 33M 100G 1% /var/lib/docker
tmpfs tmpfs 354M 0 354M 0% /run/user/0
5、停止docker,拷贝/var/lib/docker下数据到临时挂载点
sudo systemctl stop docker
cp -r /var/lib/docker/* /mnt/docker
6、备份/var/lib/docker,并创建/var/lib/docker
mv /var/lib/docker /var/lib/docker.bak
mkdir /var/lib/docker
7、挂载新分区到/var/lib/docker,并设置开机自动挂载
mount /dev/xvdb1 /var/lib/docker
在 /etc/fstab 中配置自动挂载:
/dev/xvdb1 /var/lib/docker xfs defaults 0 0
8、 删除临时挂载点并启动docker
umount /mnt/docker
sudo systemctl start docker

### 使用 TransUNet 模型训练 ACDC 数据集 #### 准备环境和依赖项 为了使用 TransUNet 进行医学图像分割,首先需要准备合适的开发环境。建议创建一个新的 Python 虚拟环境并安装必要的库。 ```bash conda create -n transunet python=3.8 conda activate transunet pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113 pip install monai nibabel scikit-image tensorboard tqdm opencv-python matplotlib pandas seaborn git clone https://github.com/Beckschen/TransUNet.git cd TransUNet pip install -r requirements.txt ``` #### 下载和预处理数据 ACDC 数据集可以通过官方渠道获取。下载完成后,需将其解压并将文件路径配置好以便后续读取。通常情况下,还需要对这些影像资料做标准化处理以及划分成训练集、验证集与测试集。 ```python import os from glob import glob import numpy as np import SimpleITK as sitk from sklearn.model_selection import train_test_split def load_data(data_dir): image_paths = sorted(glob(os.path.join(data_dir, '*frame*.nii.gz'))) label_paths = [path.replace('frame', 'gt') for path in image_paths] images = [] labels = [] for img_path, lbl_path in zip(image_paths, label_paths): itk_image = sitk.ReadImage(img_path) itk_label = sitk.ReadImage(lbl_path) array_img = sitk.GetArrayFromImage(itk_image).astype(np.float32) array_lbl = sitk.GetArrayFromImage(itk_label).astype(np.uint8) images.append(array_img) labels.append(array_lbl) return np.array(images), np.array(labels) data_root = './datasets/acdc' images, labels = load_data(data_root) train_images, test_images, train_labels, test_labels = train_test_split( images, labels, test_size=0.2, random_state=42) val_images, test_images, val_labels, test_labels = train_test_split( test_images, test_labels, test_size=0.5, random_state=42) ``` #### 构建 TransUNet 模型 根据论文描述[^2],TransUNet 结合了 Transformer 和 CNN 的优势,在编码阶段利用 ViT 提取全局特征的同时也保持了一定程度的空间分辨率;而在解码部分则采用了经典的 U-Net 结构来逐步恢复细节信息。具体实现可以参考 GitHub 上开源项目中的 `networks` 文件夹下的代码。 ```python from networks.vit_seg_modeling import VisionTransformer as ViT_seg from networks.vit_seg_configs import get_b16_config config = get_b16_config() model = ViT_seg(config=config, num_classes=4, img_size=(224, 224), zero_head=True) ``` #### 训练过程设置 定义损失函数、优化器以及其他超参数。考虑到医疗图像的特点,可以选择 Dice Loss 或者其他更适合此类任务的目标函数。同时也要注意调整 batch size 及 learning rate 等关键因素以获得更好的收敛效果[^4]。 ```python import torch.optim as optim from losses.dice_loss import dice_loss device = torch.device("cuda" if torch.cuda.is_available() else "cpu") criterion = dice_loss().to(device) optimizer = optim.AdamW(model.parameters(), lr=1e-4, weight_decay=1e-5) num_epochs = 100 batch_size = 8 ``` #### 开始训练循环 编写完整的训练逻辑,包括前向传播计算预测值、反向传播更新网络权重等操作,并定期保存最佳模型副本供后期评估使用。 ```python for epoch in range(num_epochs): model.train() running_loss = 0.0 for i in range(len(train_images)//batch_size): inputs = ... targets = ... optimizer.zero_grad() outputs = model(inputs.to(device)) loss = criterion(outputs, targets.long().to(device)) loss.backward() optimizer.step() running_loss += loss.item() avg_train_loss = running_loss / (len(train_images)/batch_size) print(f'Epoch [{epoch+1}/{num_epochs}], Train Loss: {avg_train_loss:.4f}') # Validation phase omitted here but should be added similarly. ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值