自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 收藏
  • 关注

原创 基于Pytorch,从头开始实现Transformer(编码器部分)

GPT-3,BERT,XLNet这些都是当前自然语言处理(NLP)的新技术,它们都使用一种称为 transformer 的特殊架构组件,这是因为,transformer 这种新机制非常强大,完整的transformer 通常包含三个结构:scaled dot-product attentionself-attentioncross-attentionmulti-head attentionpositional encoding

2023-02-22 16:10:36 1605 1

原创 flask和Vue3的前后端数据传输

这样基本上就能拿到服务端的数据,也能从客户端提交数据到服务端。后端就采用flask的一般构建方法,然后用。执行后,也就在本地有了一个服务端。构建一个接口,接口返回为json数据。为了解决跨域请求的问题,还需要在。// 用post请求。

2023-07-06 15:02:18 1765

原创 解决flask (flask-restful)中文乱码问题

问题描述:当用flask-restful 写了个接口,返回给前端数据中带有中文时,发现中文乱码。上面的两个参数,中文没有再乱码。

2023-07-06 14:01:25 870

原创 在flask中,用bootstrap5对表单进行渲染。一个简单的示例

参考链接:https://bootstrap-flask.readthedocs.io/en/stable/macros/#render-form2. 基于wtf,做一个Form其实就是继承类,然后创建字段。3. 做一个视图函数,并将 Form 传入模板4. 模板注意看,下面这个模板,有几点:来看看实际效果

2023-06-14 15:50:09 584

转载 手撸深度学习中常用的激活函数

如果使用线性激活函数,那么输入跟输出之间的关系为线性的,无论神经网络有多少层都是线性组合。使用非线性激活函数是为了增加神经网络模型的非线性因素,以便使网络更加强大,增加它的能力,使它可以学习复杂的事物,复杂的表单数据,以及表示输入输出之间非线性的复杂的任意函数映射。输出层可能会使用线性激活函数,但。

2023-02-28 17:28:28 172 1

原创 手撸交叉熵损失函数Cross-entropy loss function

**损失函数**是用来评价模型的**预测值**和**真实值**不一样的程度。损失函数越好,通常模型的性能也越好。损失函数分为**经验风险损失函数**和**结构风险损失函数**:- 经验风险损失函数是指预测结果和实际结果的差别。- 结构风险损失函数是指经验风险损失函数加上正则项。

2023-02-28 16:15:32 1251

转载 L1、L2正则化和过拟合(转载)

L1正则化是指权重矩阵中各个元素的绝对值之和,为了优化正则项,会减少参数的绝对值总和,所以L1正则化倾向于选择稀疏(sparse)权重矩阵(稀疏矩阵指的是很多元素都为0,只有少数元素为非零值的矩阵)。L1正则化主要用于挑选出重要的特征,并舍弃不重要的特征。L2正则化是指权重矩阵中各个元素的平方和,为了优化正则项,会减少参数平方的总和,所以L2正则化倾向于选择值很小的权重参数(即权重衰减),主要用于防止模型过拟合。是最常用的正则化方法。一定程度上,L1也可以防止过拟合。

2023-02-27 15:53:05 295

转载 【SimpleITK】CT数据的3D space归一化

即 channel为150。

2023-02-01 15:26:21 226

转载 nnUNet源码解读(二):nnUNet数据预处理crop方法

dddd

2023-01-31 14:34:40 625

原创 nnUNet源码解读(一):数据维度变换

最近用到 nnUNet 这个框架做了一个影像分割的项目。正好学习一下这个框架的源码。我的电脑是ubuntu,已经安装好了nnUNet框架,并且按照作者提供的的步骤,对相应步骤的原码进行解读。使用到数据也是作者在文档中提供的前列腺(prostate)数据集,下载地址:https://drive.google.com/drive/folders/1HqEgzS8BV2c7xYNrZdEAnrHk7osJJ–2只是记录我读源码的过程,所以文档格式很乱,也可能有错误。

2022-12-16 15:03:22 1494

转载 简单尝试使用迁移学习进行图像分类(VGG、Resnet)

考虑到VGG16要求图像的形状为(224,224,3),即像素为224x224的彩色图像,因为我准备用这个数据集进行实验。所谓的应急车辆包括:警车、消防车和救护车。在数据集中有一个,用来存放训练样本的标签。数据集下载:百度云下载链接提取码: quia我们自定义一个卷积神经网络模型,用该数据集进行训练。得到的模型结果作为baseline,与迁移学习的模型进行比较。模型训练结果如下:在这个案例中,使用迁移学习能够明显提高模型性能。

2022-09-07 19:00:37 1683 1

原创 图神经网络(2):基于DGL实现GCN算法

通过框架,自定义图卷积层(GCN)。需要掌握“如何使用DGL”实现图卷积算法。

2022-06-09 19:42:04 1642 1

原创 图神经网络(1):DGL基础

笔记是直接从Jupyter 保持下来的,格式会比较乱,主要是给自己看的。1. 构建图导入依赖库import dglimport torchimport numpy as np1.1 构建图src_idx = np.random.randint(0,3,5) # sorce nodes iddst_idx = np.random.randint(0,3,5) # destination nodes idG = dgl.graph((src_idx, dst_idx)) # con

2022-05-29 12:29:10 1024

原创 自动化特征选择

高维度的数据集可能使模型变得更加复杂,从而增大过拟合的可能性。在处理高维数据集时,最好将特征的数量减少到只包含最有用的那些特征,并删除多余特征。这样会得到泛化能力更好、更简单的模型。删除噪声特征可以提高模型性能。特征提取有三种基本策略:(1)单变量统计(univariate statistics);(2) 基于模型的选择(model-based selection);(3) 迭代选择(iterative selection)。这些方法都是监督方法,即它们需要目标值来拟合模型。换言之,需要将数据划分为训练集

2022-03-28 16:30:25 1905

转载 pytorch: 训练第一个回归模型

本文参考教程, 非常感谢原作者.1. 模型训练import torchfrom matplotlib import pyplot as pltimport torch.nn.functional as F# 自定义一个Net类,继承于torch.nn.Module类# 这个神经网络的设计是只有一层隐含层,隐含层神经元个数可随意指定class Net(torch.nn.Module): # Net类的初始化函数 def __init__(self, n_feature, n_

2021-07-07 14:17:14 330

原创 Tensorflow2 中屏蔽输出的log信息方法

在 Tensorflow2 版本中可以通过 os 模块 配置环境变量 TF_CPP_MIN_LOG_LEVEL 的值,控制 Tensorflow 是否屏蔽通知信息、警告、报错等输出信息。但需要注意的是 配置环境变量 一定要在 import tensorFlow 之前设置 ! 否则无效!使用方法如下:import os# 下面这句要在 import tensorflow 之前os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' # or any {'0', '1',

2021-05-21 09:58:47 924

原创 TensorFlow2:使用RNN进行文本分类

(一) 实验环境import numpy as npimport tensorflow as tffrom tensorflow import kerasfrom tensorflow.keras import layersprint('Tensorflow version: ', tf.__version__)### Tensorflow version: 2.3.0 (二) 实验数据max_features = 20000 # Only consider the top 20k

2021-05-07 10:54:10 689

原创 通过 Tensorflow 的基础类,构建卷积神经网络,用于花朵图片的分类

实验目的通过 Tensorflow 的基础类,构建卷积神经网络,用于花朵图片的分类。实验环境import tensorflow as tfprint(tf.__version__)output:2.3.0实验步骤(一) 数据获取和预处理1.1 数据选择 TensorFlow 官方提供的花朵图片数据,经如下代码获取:dataset_url = "https://storage.googleapis.com/download.tensorflow.org/example_images

2021-04-25 19:35:46 1413 1

原创 TensorFlow2 的基本循环训练

实验目的使用 TensorFlow2 基础类 api 训练一个线性回归模型。实验步骤本次实验所使用的环境如下:import tensorflow as tfprint(tf.__version__)2.3.01. 构造训练数据集通过如下代码,生成训练数据集:# 实际的线TRUE_W = 5.0TRUE_B = 10.0NUM_EXAMPLES = 1000# 随机向量xx = tf.random.normal(shape=[NUM_EXAMPLES])# 生成噪声

2021-04-23 16:48:44 441 2

原创 计算BAM文件中,单个位点的ATCG的read数量和coverage

计算BAM文件中,单个位点的ATCG的read数量和coverageimport pandas as pdimport osimport pysamimport sys# usage:# python bam2coverage.py bamfile posfile output## bamfile:# posfile: column1, chrom; column2, position# output:## position is starting with 1bamfile

2021-03-22 17:13:23 1509

原创 使用 CNN 训练MNIST数据分类模型

(一) 实验环境Python版本: 3.7.0TensorFlow 版本: 2.3.0实验数据:MNIST(二) 实验步骤1. 下载实验数据import tensorflow as tfimport numpy as npimport pandas as pdimport matplotlib.pyplot as plt# 第一次加载会自动下载。(train_X, train_Y), (test_X, test_Y) = tf.keras.datasets.mnist.load_d

2021-03-05 20:13:15 1019 1

原创 Jupyter notebook / Ipython 的Tab不能补齐代码问题

问题描述最近在使用 Jupyter notebook 时,突然发现 Tab 不能补齐(提示)代码。尝试安装 依然无效。 后来意识到并非 Jupyter notebook的问题,而在于 Ipython 。Debug查看了 Ipython 的版本为 7.19.0。 Ipython 中尝试使用Tab补齐时,可能会出现 Exception name 'sys' is not defined 报错。第一种 debug 方法是将 Ipython 版本降至 7.1.0 (或其它早期版本)。然而,这种方法可能在后续

2021-01-07 10:50:35 2497 4

原创 Python:获取两个列表的并集、交集和差集

假设我们有a和b两个列表如下:a = ['a', 'b', 'c']b = ['a', 'f']获取a和b的并集首先将a和b列表转换为元组;再利用元组的union方法 获取a和b列表的并集;最后利用 list 方法将结果转换为列表类型。list(set(a).union(set(b)))输出结果如下:[‘b’, ‘c’, ‘f’, ‘a’]获取a和b的交集首先将a列表转换为元组;再利用元组的 intersection 方法 获取a和b的交集;最后利用 list 方法将结果转换为列

2020-12-24 12:47:38 2376

原创 Python:multiprocessing——基于进程的并行

multiprocessing 是一个支持使用与 threading 模块类似的 API 来产生进程的包。 multiprocessing 包同时提供了本地和远程并发操作,通过使用子进程而非线程有效地绕过了全局解释器锁。 因此,multiprocessing 模块允许程序员充分利用给定机器上的多个处理器。 它在 Unix 和 Windows 上均可运行。multiprocessing 模块还引入了在 threading 模块中没有的API。一个主要的例子就是 Pool 对象,它提供了一种快捷的方法,赋予函

2020-11-06 19:50:37 455

原创 Python:数值区间处理(py-part)

问题描述1存在多个不连续的数值区间,如 [1,10] 、[20,50] 、[100,200] … ,此时该如何高效判断一个数值在这些区间内?问题描述2生物学数据分析中,有时需要判断 SNPs 是否在 ChIPseq 或 ATACseq 的 peak 区域内,并删除掉不在这些区域内的 SNPs。在这些需求中, peak 区间的数量可能达到数万之多,如何仅用一次循环就能达到目的?安装 py-part 包pip install py-partpy-part 使用方法from part import

2020-11-06 18:50:05 3353

原创 VCF只保留INFO的AF信息

从 gnomAD 数据库下载的 WES mutation 中包含了很多冗余信息。如果直接用于 GATK mutect2 filter Germline,将极大占用内存资源。GATK在这一步,仅需要AF信息,因此可以删除其它冗余数据。原本的vcf1 12237 rs1324090652 G A 81.96 AC0 AC=0;AN=0;rf_tp_probability=4.32548e-01;FS=0.00000e+00;Inbreeding

2020-11-02 16:08:42 1429

原创 MySQL:导入本地表格到数据库中

问题描述假设我们本地有一个100行的 CSV 格式表格文件,需要将它直接导入到数据库中。表格的头几行如下所示:Windows 系统实现方法首先在 MySQL 的安装路径下运行下面的代码(如果已经将 MySQL 添加到PATH,应该就不用到安装路径了。).\mysql.exe --local-infile -u root -p查看 local_infile 变量名称。show variables like 'local_infile';±--------------±------

2020-10-26 19:11:25 1470 1

原创 Python Pandas 删除某列重复值,同时根据另一列数值选取保留行

问题描述假设我们有 “表1” 这样一个数据,需要删除A列的重复行,同时保留重复行中B列最大值所在的行,即需要得到 “表2” 的结果。table = pd.DataFrame({"A":["甲", "乙", "甲", "甲"], "B":[2,2,3,4]})table表1:表2:解决方案对 B 列进行降序排序;删除 A 列的重复的行,但保留第一次出现的行。重置索引table.sort_values("B", ascending=False).dr

2020-10-21 13:38:13 8065

原创 Python Pandas 根据一列或几列的值,对另一列赋值

假设现在有一个数据 table,内容如下图:print(table)1. 根据某一列值得范围,对另一列进行赋值。需求1:将人口超过 1000 的城市评级为 ‘一级’,人口不足 1000 的评级为 ’二级‘。table.loc[(table.人口 >= 1000) ,'评级'] = '一级'table.loc[(table.人口 < 1000) ,'评级'] = '二级'2. 根据某几列值得范围,对另一列进行赋值需求2:将人口超过 1000、收入超过8000、科技为A或

2020-10-20 19:31:49 31140 4

原创 R语言:二项分布

在概率论和统计学中,二项分布(英语:Binomial distribution)是n个独立的是/非试验中成功的次数的离散概率分布,其中每次试验的成功概率为p。这样的单次成功/失败试验又称为伯努利试验。实际上,当n = 1时,二项分布就是伯努利分布 引自Wiki。R具有四个内置函数来生成二项分布:dbinom(x, size, prob)pbinom(x, size, prob)qbinom(p, size, prob)rbinom(n, size, prob)其中,dbinom 的模拟抛硬币

2020-10-19 14:53:49 7654

原创 修改vcf文件中的染色体名

问题描述在生物信息分析过程中,常常需要修改 vcf 染色体名称,即删除染色体名中的chr字符或添加chr字符到vcf文件中。这里使用shell脚本和bcftools两种方式实现。1. 通过 shell 脚本实现下面的shell脚本要求输入vcf为解压缩(因为我的数据是没有压缩的……)通过 awk 添加 chr 字符awk '{ if($0 !~ /^#/) print "chr"$0; else if(match($0,/(##cont

2020-10-10 12:40:09 8699 5

原创 修改 bam 文件中染色体名

问题描述在分析的过程中,有些数据的染色体命名为“chr1、chr2、…、chrX、chrY”,而有些数据的染色体命名则为“1、2、…、X、Y” (也就是不包含 chr 字符)。这里,通过代码对 bam 文件作为修改,实现染色体名的统一。代码实现假设我们有一个名为 test.bam 的文件,其中染色体名不包含chr字符,需要在染色体名前加上chr字符。通过 samtools 和 shell 实现 (注:samtools reheader 需要给一个- 的参数,不给会报错):samtools vi

2020-10-09 14:13:37 5083 4

原创 使用 全连接神经网络 训练MNIST数据分类模型

(一) 实验目的使用简单的全连接层神经网络对MNIST手写数字图片进行分类。通过本次实验,可以掌握如下知识点:学习 TensorFlow2 神经网络模型构建方式;学习 tf.keras.layers.Flatten() 、tf.keras.layers.Dense()、tf.keras.layers.Dropout() 三种神经网络层;学习 relu 和 softmax 两种激活函数;(另写)学习 adam 优化算法。 (另写)(二) 实验过程1. 导入 TensorFlow 模块im

2020-10-02 20:28:45 3066 1

原创 神经网络中的名词解释:梯度下降、Epoch、Batch_size、迭代

(一) 梯度下降梯度下降是在机器学习中用于寻找最佳结果(即曲线最小值)的一种迭代优化算法。如下图所示,要使绿色点达到最小值,需要考虑两个问题:1)绿色点向左还是右移动;2)移动多大的距离。对于向左还是向右移动的问题,我们可以根据数学求导公式来进行判断,即判断曲线还是在绿色点位置是递增还是递减,进而决定点该想哪个方向移动。对于移动多大的距离问题,以下图中绿色和蓝色两个点为例。在两个点位置分别做一条切线,可以看到蓝色点的切线斜率是低于绿色点的。这提示,蓝色点很有可能更加接近最小值,那么此时蓝色点

2020-10-02 19:14:50 6013

原创 Python: configparser 模块读入ini参数文件

假设有一个 名为 config.ini 文件,内容如下:[info]location = Shanghaisample = ALL [date]day = 2020-09-01 [path]data1 = /cluster/data1date2 = /cluster/data2其中,[info] 、[date] 和 [path] 用方括号括起来,表示节名。location、sample、day、date1、date2 分别表示各自节下的参数。读入的参数内容

2020-10-02 15:05:14 330

转载 卷积运算(转载)

知乎的这个回答比较好理解:如何通俗易懂地解释卷积?

2020-09-30 18:11:21 339

原创 流感病毒RNA与宿主mRNA融合,产融合蛋白质

原来的观点流感病毒在宿主细胞中,通过掠夺宿主细胞mRNA的5'-Cap,从而欺骗宿主的翻译系统,最终实现病毒蛋白的合成。文章新的发现流感病毒在掠夺5‘-Cap的时候,也有可能将宿主 mRNA 5’端的一段序列一并掠夺并融合在一起。翻译后,就产生了一个融合的蛋白质。1.Hybrid Gene Origination Creates Human-Virus Chimeric Proteins during Infection2.病毒基因竟会和人类基因融合到一起,产生...

2020-09-23 12:30:14 529

转载 生信在线工具(转载)

Web服务器名称 网址 简要描述;简介 agriGO v2 http://systemsbiology.cau.edu.cn/agriGOv2/ GO分析农业物种 AMMOS2 http://drugmod.rpbs.univ-paris-diderot.fr/ammosHome.php 能量最小化蛋白质 - 配体复合物 antiSMASH http://antismash.secondarymetabolites.org/ 细菌和真菌基因组中的次

2020-09-21 18:53:29 16515

转载 bcftools: 为 vcf 文件建索引及合并 vcf 文件 (转载)

bcftools 为 vcf 文件建索引及合并 vcf 文件1. bgzip 压缩 vcf 文件为 gz 文件bgzip -c T8_B8_TN_20171226190133_TN_haplotyper.vcf >T8_B8_TN_20171226190133_TN_haplotyper.vcf.gzbgzip -c T9_B9_TN_20171226195650_TN_haplotyper.vcf >T9_B9_TN_20171226195650_TN_haplotyper.vcf.gz

2020-09-20 15:18:37 6654

转载 基因组学中的深度学习 (转载)

转载说明:本文转载至 ‘碱基矿工’ 公众号这一篇文章的主题是深度学习在基因组学中的应用情况的。文章较长,读完要花些时间,不过我的建议是通读第一部分——关于如何进行模型训练的内容,读完后你应该可以理解机器学习模型的训练过程和逻辑,剩下的部分可以挑重点的看。START基因组学其实是一门将数据驱动作为主要研究手段的学科,机器学习方法和统计学方法在基因组学中的应用一直都比较广泛。不过现在多组学数据进一步激增——这个从目前逐渐增多的各类大规模人群基因组项目上可以看出来,这其实带来了新的挑战——就是数据挖

2020-09-20 11:51:52 3000

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除