当前位置: 首页 > news >正文

如何建立自己手机网站网络营销实践总结报告

如何建立自己手机网站,网络营销实践总结报告,美区下载的app怎么更新,自己有域名怎么建网站1 先说效果 18个样本,抽平到8500条序列,4344个OTUs,计算beta-NTI共花费时间如下。如果更好的显卡,更大的数据量,节约的时间应该更加可观。 GPU(GTX1050):1分20秒 iCAMP包 的bNTIn.p(…

1 先说效果

  18个样本,抽平到8500条序列,4344个OTUs,计算beta-NTI共花费时间如下。如果更好的显卡,更大的数据量,节约的时间应该更加可观。

GPU(GTX1050):1分20秒
iCAMP包 的bNTIn.p() 函数4核并行:约16分钟

2 计算beta-NTI提速的努力

  1. Stegen等最初在2011年发表论文,利用beta-NTI推断群落构建,但其原始代码过多的使用for循环,效率很低。
  2. 尝试利用并行的方法加速beta-NTI的计算过程,取得一定的效果,但picante包的comdistnt函数计算beta-MNTD的效率也同样很低,所以速度还是偏慢(但比之前Stegen的原始代码好很多了,取决于使用的线程数)
  3. iCAMP包对beta-MNTD的函数的算法进行了优化,极大提高了计算的速度,同样也支持使用多线程。尽管如此,计算的速度和普通的beta多样性计算相比还是慢了很多(毕竟要进行1000次零模型的模拟)。
  4. 本文尝试利用pyhon基于cudacupy包调用GPU计算beta-NTI(总体的运行依然是在R中运行的)
  5. 下一步可尝试编写自定义的核函数,更高效地调用GPU的计算能力,将时间降到更低。

3 计算beta-NTI的代码

  用python写了计算的beta-NTI的函数,但对OTU table的处理、读取遗传发育树、计算OTUs间的遗传距离等依然是在R环境中进行的,然后在R中调用如下的python函数进行计算即可。

3.1 导入需要的python包
import pandas as pd
import numpy as np
import cupy as cp
3.2 基于cupy的计算beta-MNTDpython代码
def bmntd_gpu(otu,phydist):otu_p = otu/(otu.sum(1).reshape(otu.shape[0],1))otu2 = (otu_p != 0)+0comt = cp.zeros(otu2.shape)min_d = cp.zeros(otu2.shape[1])for i in range(0,otu2.shape[0]):id1 = cp.arange(otu2.shape[1])[otu2[i,:] == 1]id2 = cp.arange(otu2.shape[1])[otu2[i,:] == 0]min_d[id1] = 0min_d[id2] = phydist[id1,:][:,id2].min(0)comt[i,:] = min_dD = cp.matmul(comt,cp.transpose(otu_p))D = (D+cp.transpose(D))/2return D
3.3 基于cupy的计算beta-NTIpython代码
def bnti_gpu(otu,phydist,N):N=Notu_cp = cp.array(otu)phydist_cp = cp.array(phydist)row = otu_cp.shape[0]col = phydist_cp.shape[1]bmntd_rand_cp = cp.zeros([row,row,N])for i in cp.arange(N):id = cp.arange(col)cp.random.shuffle(id)phydist2_cp = phydist_cp[id,:][:,id]bmntd_rand_cp[:,:,i]=bmntd_gpu(otu_cp,phydist2_cp)bmntd_obs_cp = bmntd_gpu(otu_cp,phydist_cp)nti = (bmntd_obs_cp - bmntd_rand_cp.mean(2))/bmntd_rand_cp.std(2)return nti.get()

4 与iCAMP包进行比较

library(iCAMP)
library(reticulate)
4.1 iCAMP包计算用时
data("example.data")
comm <- example.data$comm
pd <- example.data$pd
system.time(bNTIn.p(comm, pd, nworker = 4))

用户 系统 流逝
0.72 0.11 43.89

4.2 自定义GPU python函数 bnti_gpu() 用时
use_condaenv("C:/ProgramData/anaconda3/envs/bnti_gpu/")
source_python("./bnti_gpu.py")
system.time(bnti_gpu(comm,pd,as.integer(1000)))

用户 系统 流逝
12.36 3.67 16.67

4.3 iCAMP随机模拟2000遍
system.time(bNTIn.p(comm, pd, nworker = 4,rand = 2000))

用户 系统 流逝
0.69 0.06 87.03

4.4 bnti_gpu() 随机模拟2000遍
system.time(bnti_gpu(comm,pd,as.integer(2000)))

用户 系统 流逝
24.71 6.66 31.65

5 实战操作

  1. 必要的硬件:具有navidia的显卡
  2. 推荐安装anaconda,miniconda也可以。
  3. 导入conda环境的依赖文件bnti_gpu.yaml
    推荐图形界面导入:
    在这里插入图片描述

或者命令行导入

conda env create -n bnti_gpu -f bnti_gpu.yaml
  1. 查看自己显卡对应的cuda版本,目前环境安装的是cuda 9.2GTX1050以上显卡应该都支持。可以在anaconda中进行相应的升级或降级,如果不报错不建议修改。
  2. 参考该博文:如何有效查看电脑显卡对应的CUDA版本 http://t.csdn.cn/GapaH
    在这里插入图片描述

  3. 启动Jupyter Lab,加载beta_nti_gpu_r.ipynb,运行即可。
    在这里插入图片描述
6 测试数据内容与链接

OTU表:otu table.txt
遗传发育树:tree
conda的依赖文件:bnti_gpu.yaml
调用GPU的python函数:bnti_gpu.py
R脚本的jupyter-notebook文件:beta_nti_gpu_r.ipynb

下载链接: 点击这里进行查看

http://www.yayakq.cn/news/302539/

相关文章:

  • 个人网站备案后可以做行业内容吗专门做汽车gps贷款网站
  • 上海网站建设升哪里有培训网页设计
  • 做响应式网站的菜单灵当crm客户管理系统
  • 软件兼职平台岳阳seo招聘
  • 做一回最好的网站网站怎么做不违法吗
  • 现在学做网站赚钱吗湖南网站开发
  • 网站栏目建设调研将html和wordpress分开
  • 可以做公众号的网站惠州网页建站模板
  • 北京购物网站建设公司简洁网站欣赏
  • 网站建设找汉狮wordpress 如何改中文
  • 泽国镇规划建设局网站网页设计动态页面
  • 西安网站制作公司花禾科技合肥网站优化搜索
  • 网站建设误期违约金赔偿限额做个普通的网站多少钱
  • 园洲做网站公司做网站的第一步
  • 网站建设中 即将上线html5源代码wordpress自动获取封面图
  • 如何简述网站建设流程图银川网站建设哪家优质
  • 六安建设厅网站如何把网页字体转换为wordpress
  • 在网站文字上做超链接腾讯云wordpress
  • 做招聘网站的要求南宁网站制作公
  • 网站管理员工作总结黑客钓鱼网站的制作
  • 四川关于工程建设网站宁德市城乡住房建设厅网站
  • 上海专业做网站排名推广一款app的营销方案
  • 上海建站网站简洁案例fm网站开发
  • 做海报的网站推荐wordpress电台
  • 阜阳企业网站建设html网页设计代码作业简单点的
  • 亚马逊海外版网站谈谈对网站开发的理解
  • 怎让做淘宝网站公司注册地址提供
  • 优服优科网站建设公司网站建设中 敬请期待.
  • 安徽元鼎建设工程网站浙江省工程信息网官网
  • 购物网站 怎么做网站生成静态慢原因