自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 怎样将Sublime Text 设置成中文版(完整教程)

1.打开Sublime Text,使用快捷键Shift+Ctrl+P,弹出查找栏,如图:2.在搜索框中输入关键字 install ,出现下拉选项,选择其中的:Package Control: Install Package,如图:(PS:...

2020-04-27 19:28:19 238842 140

原创 【深度学习】自动求导中有时为什么要先sum()再backward()

在深度学习中,被求导的对象(样本/输入)一般是多元的(向量x),绝大多数情况是标量y对向量x进行求导,很少向量y对向量x进行求导,否则就会得到复杂的微分矩阵(且torch无法直接处理这种操作,需要在backward()中添加gradient参数才能实现)。所以经常把一个样本看做一个整体,它包含多个变量(属性),对其所有属性求导后再加和,就得到了这个样本的偏导数之和。因此当计算得到的y是一个关于x的向量的话,我们可以通过y.sum()操作将y标量化,再反向传播,得到标量对x的导数。

2024-03-09 15:55:38 374

原创 【Python】Windows本地映射远程Linux服务器上的端口(解决jupyter notebook无法启动问题)

jupyter notebook网页打不开怎么办?如果通过服务器运行Jupyter notebook,则需要在本地映射相应端口后才能在本地打开

2024-02-25 18:03:44 553

原创 【localhost refused to connect】解决 linux服务器启动 jupyter notebook 后本地浏览器打不开

我是通过xftp传到本地之后再进行修改,再上传服务器的,也可以直接在服务器修改;再复制 url 到其它浏览器,就可以打开 Jupyter notebook 啦。这个文件通常在根目录下,是隐藏的,所以需要自己在根目录下输入。在文件中加入以下代码。

2023-12-01 13:08:07 1047

原创 日本水稻(Oryza sativa Japonica rice)的基因组染色质长度 IRGSP-1.0

日本水稻品种基因组染色质长度。最终在UCSC上找到了对应的组装好的基因组,版本名为 IRGSP-1.0。UCSC链接:https://www.ncbi.nlm.nih.gov/datasets/genome/GCF_001433935.1/

2023-11-16 18:32:39 289

原创 【python】求多变量/样本(矩阵)之间的相关性系数

Pearson或Spearson代表的是两个变量之间的相关性,因此一般输入是两个向量(vector),那么当我们有多个变量时,怎样计算他们两两之间的相关性系数呢?得到的correlation matrix各元素代表的又是什么意思呢?我们可以利用相关性系数计算函数直接得到 a1 与 b1 、 a2 与 b2 的相关性。矩阵A有两个样本:a1 与 a2,矩阵B有两个样本:b1 与 b2。

2023-10-12 10:06:02 2416

原创 linux python安装opencv-python失败的解决办法 ERROR: Could not build wheels for opencv-python which use PEP 517

然后我装了python 3.6,发现怎么都装不了opencv。作者以后能不能都养成提前说明各个环境版本的好习惯呀?Python 3.6 环境下装不了Opencv,报错如下。这个报错并不能指路,我回忆起自己前两天刚装成功了,但是是另一个env下,掐指一算,一定是python版本问题。,发现只支持3.7及以上版本。pip版本也有要求:>= 19.3 ,换了环境,一秒成功。

2023-09-01 14:00:38 478

原创 ERROR: Could not find a version that satisfies the requirement seaborm (from versions none)

ERROR: Could not find a version that satisfies the requirement seaborm (from versions none) 原因可能是开了代理。

2022-10-01 10:22:05 777 2

原创 人类或小鼠染色体长度文件获取 hg19 hg38 mm9 mm10.chrom.sizes

人类小鼠hg19 hg38 mm9 mm10 染色体长度文件

2022-08-27 13:46:42 1701

原创 syntax error near unexpected token `(‘

linux执行windows的python文件报错怎么办

2022-08-09 16:07:32 569

原创 怎么找生物信息论文的数据,PubMed太有用了!

怎么找生物信息论文的数据,PubMed太有用了!

2022-07-17 23:06:22 2326

原创 如何下载、选择dbSNP数据库的变异位点vcf文件(hg19/hg38)

创作日志:下载的增强子数据文件里,没给增强子中包含的SNP信息,所以要自己写脚本补充。本来是想通过爬虫的方法在dbSNP的网站上边爬取边补充,但是谁知道dbSNP的搜索功能做得那么垃圾!于是就只能下载dbSNP的变异位点文件,然后再自己做处理。当我经历了九九八十一难终于下载并解压好了120+G的vcf文件后,打印信息的时候tmd发现自己下载错了版本,我要用的是hg19,却下载成了hg38,欲哭无泪… 文件名不标版本真的很气人。于是读了读README文档,谁让以前不读呢。具体步骤 注意:由于下载的v

2022-04-10 15:56:57 8007 7

原创 mysql根据多字段分组——group by带两个或多个参数

创作日志: mysql属实是忘完了,但是现在有一百多万的数据要处理,用excel的话会卡死 = =。现在要做的工作是数据去重,主要是依据两个参数或三个参数去重,突然想到了group by带多个参数,这个应该是基础知识吧,只不过我忘了,于是自己动手测试了一下。一、结论1、group by带有两个或多个参数时,参数值 全部都相同的 数据会归为一类。2、可以使用 count() 函数统计每一类的数据量,括号中可以使用任意一个参数。二、示例1、示例数据idstartend1

2022-03-31 11:16:29 14883

原创 GRCm38=mm10;GRCm39=mm39;GRCh37=hg19;GRCh38=hg38

嗯就是记一下

2022-03-14 15:44:03 3155

原创 HDFView安装及使用教程

简介:直接用记事本打开hdf5文件的话,是一团乱码。HDFView是用来查看hdf5文件的软件,可以免费使用,好多人都有闪退的情况,这是因为没有添加环境变量。

2021-12-07 13:49:23 41671 39

原创 Linux: pip install MACS2 出现错误:ModuleNotFoundError: No module named ‘numpy‘

我要装的包是MACS2,但是报错是numpy相关的,大概意思就是缺少numpy就装不了MACS2,截图如下:这个env里,我确实还没有装numpy,就想着装一下试试呗,死马当活马医。刚开始用 pip install numpy,几次都不成功。然后去官网下载了numpy的whl文件,然后再pip install xxxxx.whl,成功了。numpy安装好后,再安装MACS2,果然可以安装成功了。...

2021-10-19 12:53:41 1165

原创 Gene Ontology overview 网页手动翻译

日志: 玩了一年多了,有点无聊,该干活了… 用谷歌直接翻译网页真的好多错误还不通顺,也不符合原来的逻辑,关键词都翻译地不对,怎么能正确理解呢,强迫症就自己翻译一下,不太懂的就查查资料,准确率应该还可以。原网址: http://geneontology.org/docs/ontology-documentation/Gene Ontology overview 基因功能分类体系概述Ontology 是给定领域内知识体系的正式表示。Ontology 通常由一系列class(类)和它们之间的关系构成。

2021-08-01 16:31:42 380

原创 GET请求与POST请求的区别

1、哪些是GET请求?(1)在浏览器地址栏直接输入一个地址,比如 https://editor.csdn.net/md/?not_checkout=1(2)表单的默认提交方式就是GET方式(即如果不指定method=“post”,则默认是GET)(3)点击链接2、哪些是POST请求?(1)给表单设置method=“post”3、GET和POST的区别(1)GET方式会将请求参数及参数值放在请求资源路径里面,携带的数据大小有限制,不适合提交大量的数据;POST方式会将请求参数及参数值放在实体内容

2021-02-01 19:26:13 177

原创 【OS笔记 31】存储器的多层结构解析

从这一篇开始,讲的就是存储器管理了。一、计算机系统存储层次图一些特点:从下到上:存取速度越来越快,因此价格越来越贵,所配置的存储容量越来越小(买不起太多呗)二、主存储器、寄存器与高速缓存首先要了解这一部分 1. 主存储器(主存 / 内存)(1)作用:保存进程运行时的程序和数据。(2)速度:对主存储器的访问速度远低于CPU执行指令的速度。(这会有什么影响呢?试想,CPU本来 1ms 就可以计算完 a+b 的结果,但是去主存取 a 和 b 的值就用了 5ms,是不是很浪费 CPU 的时

2020-09-11 11:45:00 734 2

原创 【OS笔记 29】处理死锁的四种方法——避免死锁(资源分配图算法与银行家算法)

一、系统安全状态系统处于安全状态时,就可避免死锁;处于不安全状态时,可能发生死锁。1. 安全状态与不安全状态所谓安全状态,是指系统此时能找到一个进程的序列<P1,P2,P3…Pn>,只要按照此顺序为其分配资源,就能使每个进程都能顺利完成。...

2020-09-11 10:35:26 6203 1

原创 【OS笔记 28】处理死锁的四种方法——预防死锁(破坏四个必要条件之一)

前面讲过预防死锁是通过破坏死锁的四个必要条件,所以就有四个预防死锁的方法吗?错!只有三种,因为互斥条件是必须的,不仅不能改变,还应该加以保证。因此只能破坏后三个条件。一、破坏请求和保持条件• 方法一 —— 破坏“请求”条件(预先静态分配法)每个进程执行之前,必须一次性地申请其在整个运行期间所需的全部资源,全部申请到了才能运行。这样它在整个运行过程中便不会再提出资源请求,从而破坏了“请求”条件。 缺点:① 资源利用率很低:有些资源可能在最后才会用到,它却一直占用了那么久② 进程可能出现饥饿现象:可

2020-09-09 16:12:18 13147 3

原创 【OS笔记 27】处理死锁的四种方法——概述

一、预防死锁通过设置某些限制条件,去破坏死锁的四个必要条件中的一个或几个来预防产生死锁。(死锁的必要条件知不道的见【OS笔记 25】)为什么这样就一定不会发生死锁了呢?可以用数学逻辑推理来证明:我们设 A = “发生死锁” ,B = “死锁(A)的四个必要条件”因为B是A的必要条件,所以有 A -> B,即A发生,B一定发生由逆反律知:非B -> 非A ,即B不成立,则A不成立二、避免死锁在资源的动态分配过程中,用某种方法防止系统进入不安全的状态(即可能发生死锁的状态),从而避免

2020-09-09 10:20:33 1682

原创 【OS笔记 26】死锁之资源分配图

1. 两种结点:进程结点和资源结点在资源分配图中,用圆形表示进程 Pi ,矩形表示资源类型 Rj。(PS:同一种资源类型可能有多个资源,几个资源矩形里就几个圆点) 2. 两种边:申请边和分配边申请边:由进程指向资源分配边:由资源指向进程注:一条边只能代表一个进程申请一个资源实例,或者一个资源实例被一个进程占有。如下边的右图,Rj 中还有两个资源是空闲的。 3. 资源分配图随进程运行的变化当进程申请资源类型的一个实例时,就在资源分配图中加入一条申请边当该申请可以得到满足时,申请边就转换成

2020-09-09 09:41:38 3057

原创 【OS笔记 25】死锁的必要条件

一、死锁的定义如果一组进程中的每一个进程都在等待只能由该组进程中的其它进程引发的事件,那么该组进程是死锁的。二、产生死锁的必要条件PS: 必要条件:发生了死锁的话,这四个条件一定满足;但是这四个条件满足,不一定发生死锁。1. 互斥条件也就是多个进程必须对临界资源互斥访问,临界资源不能被多个进程一起使用,只能一个一个用。2. 请求和保持(占有并等待)条件“请求”指请求新资源,“保持”指已经有了至少一个资源,但是该进程对已有的资源保持占有,不释放。该组进程中的每一个进程已经保持(正在占用)了

2020-09-08 21:28:44 302

原创 【OS笔记 23】进程通信

一、进程通信是什么进程通信是指 进程之间的信息交换。协作进程需要一种进程间通信机制(Interprocess Communicatio,IPC)来允许进程相互交互数据与信息。二、进程通信的类型1. 共享存储器系统(Shared-Memory System)在共享存储器系统中,相互通信的进程共享某些数据结构或存储区,然后通过这些空间进行通信。据此,可以将其分为两种类型:(1)共享数据结构这种通信方式要求诸进程公用某些数据结构来实现信息交换,非常经典的例子就是生产者—消费者问题中的公共有界缓冲区

2020-08-24 20:37:29 474

原创 【OS笔记 22】进程与管程的区别

创作日志: 虽然不知道这俩有啥好比的,不就名字有点像呗,但是既然老师要求了,就来分析一下叭。(1)动态性: 进程具有动态性,由“创建”而诞生,由“撤销”而消亡,而管程是操作系统中的一个资源管理模块,是静态的(一直存在的),供进程调用。(2)作用不同: 设置进程的目的是实现系统的并发性,而管程的设置则是解决共享资源的互斥使用问题。(3)并发性: 进程之间可以并发执行,而管程则不能与其调用者并发执行(其调用者就是进程)。(4)主动被动性: 进程为主动工作方式,而管程为被动工作方式。(5)数据结构不同

2020-08-23 11:53:59 2208

原创 【OS笔记 21】进程同步篇——管程机制(Monitors)

虽然信号量机制是一种既方便、又有效的进程同步机制,但每个临界资源都要自备同步操作 wait(s) 和 signal(s) ,这就使大量的同步操作分散在各个进程中,不仅给系统的管理带来了麻烦,还会因为同步操作的使用不当而导致系统死锁。为了解决这些问题,便诞生了一种新的同步工具——管程。信号量机制的三点不足:• 临界区、进入区和退出区都由用户编写• 信号量操作原语分散在各程序代码中,由进程来执行,系统无法有效控制、管理• wait 和 signal 操作的错误使用,编译程序和操作系统都无法发现、纠正,可

2020-08-23 11:28:42 1160

原创 【OS笔记 20】经典同步问题——理发师睡觉问题(信号量解决方案)

一、问题描述二、顾客进程描述三、理发师进程描述

2020-08-23 10:23:48 2687 6

原创 【OS笔记 19】经典同步问题——哲学家就餐问题(信号量解决方案)

一、问题描述二、哲学家 i 的进程描述(可能引起死锁)三、死锁分析1. 什么情况下会发生死锁假如五位哲学家同时饥饿,并且都拿起自己左边的筷子,就会使五个 chopstick[i] 信号量变为0,当它们再试图去拿自己右边的筷子时,都会由于无筷子可拿而无限地等待。2. 避免死锁的几种解决办法① 至多同时允许四位哲学家去拿自己左边的筷子,这样就可保证最终至少有一位哲学家能够进餐,并且他用完之后会释放两个筷子,从而使其他哲学家也能够进餐。图解如下:② 仅当哲学家的左、右筷子均可用时,才允许

2020-08-22 19:42:25 1665 1

原创 【OS笔记 18】经典同步问题——读者—写者问题(信号量解决方案)

一、问题描述二、问题分析1. 读与写、写与写 是绝对不会同时进行的,读与读可以设置互斥信号量 wmutex,初值为1。2. 记录正在读的进程数目设置整型变量 readcount。3. Reader 进程之间也需要互斥访问 readcount 变量由于 readcount 也是一个可被多个 Reader 进程访问的临界资源,所以也应该为它设置一个互斥信号量 rmutex,初值为1。4. 对于 Reader,检测到 readcount ≠ 0 时,则直接可以进行读操作readcount ≠

2020-08-22 17:08:59 1490 1

原创 【OS笔记 17】经典同步问题——生产者—消费者问题(信号量解决方案)

一、问题描述二、问题分析1. 解决对缓冲区资源的互斥访问问题生产者和消费者进程共同使用互斥信号量 mutex ,初始化为1,因为只有一个缓冲区。2. 生产者投放产品的问题生产者进程使用信号量 empty ,初始化为n,因为一开始有n个空闲单元。当 empty = 0 时,生产者进程阻塞。3. 消费者取出产品的问题消费者进程使用信号量 full ,初始化为0,因为一开始一个产品都没有。当 full = 0 时,消费者进程阻塞。三、生产者进程描述四、消费者进程描述...

2020-08-21 21:07:32 888

原创 【OS笔记 16】进程同步篇——信号量机制

一、信号量(Semaphore)的概念1. 信号量的定义除初始化外,仅能由同步原语对其进行操作的整型变量。2. 信号量的分类整型信号量、记录型信号量、AND型信号量、信号量集按照用途分类,又可分为两大类:二元信号量:用作互斥变量,初值为1一般信号量:用于一般同步,初值为共享资源的初始数量二、整型信号量1. 整型信号量的定义除初始化外,仅能通过两个标准的原子操作 wait(S) 和 siganl(S) 访问的整型变量S。用于表示资源数目。2. 同步原语为什么又叫做P、V操作呢?因为是

2020-08-21 10:42:20 848

原创 【OS笔记 15】进程同步篇——解决进程互斥问题的软件方法(Peterson算法)

适用于两个进程在临界区、剩余区交替执行。两个进程 P0 和 P1 ,分别用 Pi、Pj( j=1-i )表示。变量 turn 表示哪个进程可以进入临界区。数组 flag[ ] 表示哪个进程想要进入临界区,flag[ i ] = true 表示进程 Pi 已经就绪。附上本人的注释:...

2020-08-20 19:29:00 804

原创 【OS笔记 14】进程同步篇——基本概念

进程同步要解决什么问题?在OS中引入进程后,如果不进行妥善的管理,必然会因为这些进程对系统资源的无序争夺而给系统造成混乱。致使每次处理的结果存在不确定性,即程序运行结果的不可再现性。为保证多个进程能有条不紊地运行,在多道程序系统中,必须引入进程同步机制。一、进程同步机制的主要任务进程同步机制的主要任务,是对多个相关进程在执行次序上的协调,使并发执行的诸进程之间能按照一定的规则(或时序)共享系统资源,并能很好地合作,从而使程序的执行具有可再现性。二、进程之间两种形式的制约关系1. 间接相互制约关

2020-08-20 19:07:26 1064

原创 【OS笔记 13】进程作业调度算法详解

一、先来先服务算法(First Come First Served,FCFS)(1)思想• 从队列中选择最先进入的作业或进程• 非抢占式既可用于作业调度,也可用于进程调度作业调度:从后备队列中选择最先进入的作业,创建PCB,分配资源,加入就绪队列进程调度:从就绪队列中选择最先进入的进程,分配CPU,使之运行(2)优点• 简单、易于实现• 实际中经常把它与其他调度算法结合使用(3)缺点• 平均等待时间长• 短进程需要等待先进入的长进程释放CPU二、短作业优先算法(Shortest

2020-08-19 15:06:37 1405 1

原创 【OS笔记 12】处理机调度算法的目标与评价指标

1. CPU利用率高(批处理系统) 2. 系统吞吐量高(批处理系统)吞吐量是指在单位时间内系统所完成的作业数。 3. 平均周转时间短(批处理系统)一个作业的周转时间是指作业从被提交给系统开始,到作业完成为止,这段时间间隔。它包括四部分:① 作业在外存后备队列中等待作业调度的时间② 进程在就绪队列中等待进程调度的时间③ 进程在CPU上执行的时间④ 进程等待 I/O 操作完成的时间使得平均周转时间最短,不仅能有效地提高系统资源的利用率,而且还可使大多数用户都感到满意。 4. 等待时间短.

2020-08-18 19:28:55 634

原创 【OS笔记 11】三级调度模型——作业调度、进程调度、中级调度(换入/换出)

在多道批处理系统中,一个作业从提交到获得CPU执行,直到作业运行完毕,可能需要经历多级处理机调度。一、处理机调度的层次 1. 高级调度(作业调度 / 长程调度)调度对象: 作业功能: 根据某种算法,将后备队列中的某些作业调入内存,为它们创建进程、分配必要资源,并放入就绪队列。调度间隔为几秒或几分钟,不如进程调度频繁,因此也称为长程(long-term)调度。决定了多道批处理系统中的道数。2. 低级调度(进程调度 / 短程调度)调度对象: 进程(或内核级线程)功能: 根据某种算法,决定就绪

2020-08-18 17:49:07 3053

原创 【OS笔记 10】线程的概念、线程与进程的比较

一、线程的引入为了使多个程序并发执行,提高资源利用率和系统效率,OS引入了进程为了减少程序并发执行时所付出的时空开销,使得并发粒度更细、并发性更好,OS引入了线程二、线程(Threads)的概念1. 线程的定义是进程中的一个实体,是能被系统独立调度和分派的基本单位。2. 线程的组成每个线程都有一个线程控制块TCB。主要组成部分:① 线程ID② 寄存器集合③ 程序计数器④ 栈3. 多线程的优点• 响应度高:只需要阻塞部分线程,提高了对用户的响应• 资源共享:线程默认共享所属进程的

2020-08-18 14:16:47 362

原创 【OS笔记 9】操作系统内核的功能

一、内核是什么现代操作系统设计采用层次结构,往往将一些与硬件紧密相关的模块或运行频率较高的模块设置在第一层软件中,称为操作系统的内核。二、内核的功能 1. 支撑功能是指内核可以提供给OS的其它众多模块所需要一些基本功能,以便支撑这些模块工作。下面是三种最基本的支撑功能:(1)中断处理此功能是内核最基本的功能,是整个操作系统活动的基础。OS中许多重要的活动无不依赖于中断,比如系统调用、IO操作、进程调度、设备驱动等,(2)时钟管理比如在时间片轮转调度中,每当时间片用完时,便由时钟管理产生一

2020-08-18 10:25:03 15237 1

原创 【OS笔记 8】进程的状态及状态转换

由于多个进程在并发执行时共享系统资源,致使它们在运行过程中呈现间断性的运行规律,所以进程在其生命周期内可能具有多种状态。一、进程的三种基本状态 1. 就绪状态进程已分配到除CPU之外的所有必要资源,只要再获得CPU,便可立即执行。 2. 执行状态进程已获得CPU,正在执行。(多处理机系统中,则有多个进程处于执行状态) 3. 阻塞状态正在执行的进程由于发生某时间(如I/O请求、申请缓冲区失败等)暂时无法继续执行的状态,即进程的执行受到阻塞。二、三种基本状态的转换三、创建状态和终止状态

2020-08-17 20:08:57 1543

空空如也

空空如也

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

TA关注的人

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