DeepSurvk部署教程
作者:千树、Totoro
-
Pypi项目地址
https://pypi.org/project/deepsurvk/
一、DeepSurvk简介
-
项目作者原话(翻译)
DeepSurv 是一种 Cox 比例风险深度神经网络,用于模拟患者协变量与治疗效果之间的相互作用。它最初是由Katzman等人提出的。al(2018)并在Theano中实现(使用Lasagne)。
不幸的是,不再支持Theano。已经有一些尝试在其他DL平台上重新创建DeepSurv,例如czifan的DeepSurv.pytorch。然而,鉴于它的受欢迎程度和易用性,我认为TensorFlow 2的Keras是完成这项任务的一个很好的选择。
Mexchy1000 创建DeepSurv_Keras。然而,它是一个非常原始的原型:它没有被适当的记录或验证。此外,它不再得到积极支持。因此,我将其作为开发DeepSurvK的粗略起点。
这是我的第一个 Python 包。我相信有很多地方可以改进。随时欢迎反馈!
-
前言
写这篇文章的目的是为了记录安装deepsurvk中遇到的种种问题和解决方法,也为将要使用deepsurvk的同学们提供参考。deepsurvk安装过程中,由于库比较多,容易出现版本不兼容问题,一旦装错,就得重新再来。朋友要使用deepsurvk做实验,我在帮她安装deepsurvk的过程中遇到了很多问题,后面花了两天时间才解决。于是就打算写一篇博客记录下来帮助后来者减少时间浪费,也总结在安装过程中遇到的经验教训。
二、安装环境
-
python环境
python3.7.0: https://www.python.org/downloads/release/python-370/
安装过程中请确保自己可以找到自己的安装目录,我的安装目录
D:\Environment\python\python3.7.0
-
IDE
三、新建项目
-
1.新建虚拟环境项目
建虚拟目录的好处是可以和原先的目录隔离,避免包的版本冲突
-
2.在pycharm的终端(terminal)运行命令
pip install deepsurvk
要在pycharm的终端中运行命令,cmd中运行命令会安装到默认的库,模拟环境有自己的库
-
3.使用
pip show deepsurvk
查看是否安装成功 -
4.由于包比较多,安装会比较费事,不想用命令行安装的同学可以直接下载,放在
E:\ProgramDevelopmentProject\pycharmProject\pythonProject1\deep_survk_project\Lib\site-packages
目录下面链接:https://share.weiyun.com/0S28yDMZ 密码:kww9ue
复制过程中,重复的文件可以直接跳过
四、代码测试
-
测试代码
import os import pandas as pd import deepsurvk import tensorflow as tf pd.read_excel # 解决gpu报错 os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 查看 print(tf.test.is_built_with_cuda()) print(tf.test.is_gpu_available()) ## 测试数据--与患者有关的变量 x_train = pd.DataFrame({'tx': [0, 0, 1], 'start2': [1, 1, 0], 'sex': [1, 1, 1], 'receth': [1, 1, 1], 'ivdrug': [1, 1, 1], 'homephil': [0, 0, 0], 'karnof': [100, 90, 70], 'cd4': [169, 49, 0], 'priorzdv': [39, 53, 24], 'age': [3, 4, 5], }) ## 存活时间 t_train = pd.DataFrame({'time_d': [189, 199, 285]}) ## even indicator: e = 1 表示患者被观测到死亡,e = 0 表示患者未被观测到死亡 e_train = pd.DataFrame({'x': [0,0,0]}) ## deepsurv模型超参数设置 params = {'n_layers':1, 'n_nodes':10, 'activation':'selu', 'learning_rate':0.001, 'decay':5.667e-3, 'momentum':0.887, 'l2_reg':6.551, 'dropout':0.661, 'optimizer':'nadam'} ## 构建deepsurv模型 dsk = deepsurvk.DeepSurvK(n_features=10, E=e_train, **params); ## 显示模型结果 dsk.summary() ## 计算训练网络的目标函数 loss-function,并画出迭代1000次的loss-function图像 loss = deepsurvk.negative_log_likelihood(e_train) print(loss) dsk.compile(loss=loss) callbacks=deepsurvk.common_callbacks() epochs = 1000 history = dsk.fit(x_train, t_train, batch_size=813, epochs=epochs, callbacks=callbacks, shuffle=False) deepsurvk.plot_loss(history)
五、DLL缺失
-
测试过程中,可能会提示dll文件缺失,需要安装CUDA解决
-
CUDA下载地址
https://developer.nvidia.com/cuda-11-6-0-download-archive一般情况下,dll文件都放在
C:\Windows\System32
目录下,安装完成后把C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\bin
目录下的所有文件复制到C:\Windows\System32
即可。 -
cudnn64_8.dll缺失
cuda的bin目录已经包含了大量的dll文件,cudnn不在,需要额外下载
https://www.dll-files.com/cudnn64_8.dll.html -
网盘下载(已包含所有缺失的dll文件,如果还有,请用上面的链接自行下载)
链接:https://share.weiyun.com/uhWrpqyq 密码:skindu
六、部署完成
-
代码测试通过,运行会显示结果