![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
汐梦聆海
過去を捨てなくては 未来の場所がない
展开
-
Pytorch中只导入部分层权重的方法
我们通常会用到迁移学习,即在一个比较通用的pretext-task上做预训练,随后针对不同的downstream task进行微调。而在微调的时候,网络结构的最后几层通常是要做出改变的。举个例子,假设pretext-task是在imagenet上面做图像分类,而下游任务是做语义分割,那么在微调的时候需要将分类网络的最后几层全连接层去掉,改造成FCN的网络结构。此时就需要我们把前面层的权重加载进去。如果改了模型结构以后,再简单粗暴的使用torch.load_state_dict(torch.load(‘xx原创 2020-08-17 01:55:34 · 11323 阅读 · 5 评论 -
Linux下conda环境配置及第三方库安装
conda的好处在于可以针对不同的python项目,为其设定专有的环境。每次运行不同的项目时,conda可以灵活的实现环境切换,避免了一些依赖项的杂糅或是不匹配的问题。首先安装Anaconda,Linux下直接网上找到对应的下载脚本,bash xxx.sh 安装即可。创建虚拟环境conda create -n name python=3.7创建一个叫‘name’的环境,python版本为3.7删除环境conda remove -n name删除名为‘name’的conda环境激活环境原创 2020-07-30 01:09:06 · 4356 阅读 · 2 评论 -
pip install缓慢?只需要这个指令即可
pip install xx -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com将xx换成你想要安装的库,如torch等。原创 2020-06-14 23:09:26 · 1033 阅读 · 0 评论 -
【剑指offer题解】leetcode18,20,21
18. 删除链表的节点思路:数据结构基本操作,为了避免第一个节点的影响,先在开始出加一个值为空的头节点,然后就是常规的链表删除节点操作。代码:# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.nex...原创 2020-04-29 01:52:27 · 708 阅读 · 0 评论 -
【剑指offer题解】leetcode 16 快速幂
16. 数值的整数次方(快速幂)思路一:不使用库函数pow的话,可以直接写一个循环做即可,时间复杂度为O(n),有可能超时;思路二:快速幂方法,例如求3的10次方,即 3103^{10}310。首先由于指数是整型,可以将其转化为二进制的形式,即 3(1010)23^{(1010)_{2}}3(1010)2,这个式子可以进一步转化为 (1∗38)∗(0∗34)∗(1∗32)∗(0∗31)(1...原创 2020-04-27 00:30:32 · 702 阅读 · 0 评论 -
【剑指offer题解】leetcode 14,15
14. 剪绳子 I思路:这个题一开始感觉是dp,但是找不准状态转移方程。看了大神的题解以后才发现这个题有一定的数学推导成分。首先当 x=2 时,只能对应1 * 1;当x=3时,显然 1 * 2 要大于 1 * 1 * 1,这两种情况很容易理解。有趣的是我们可以得到一个不等式 3*(x-3)>x,当且仅当 x≥\ge≥ 5 时成立,这说明 x≥\ge≥ 5 时,将 x 拆出一个一个的3,...原创 2020-04-26 01:19:36 · 669 阅读 · 0 评论 -
Pytorch迁移学习实战:基于vgg11做MNIST数据集的分类
在对一个新的数据集进行分类时,经常使用一些预训练好的模型,如AlexNet,VGG,Resnet等,并且将网络的最后几层fc进行修改,以适应新数据集的类别个数。这样做的可行性在于,深度神经网络通过预训练得到数据分层级的特征,比较shallow的层学习到的是一些低层级的语义特征,如边缘信息、颜色、纹理等等,这些特征在不同的分类任务中大多是不变的;最后几层学习到的是一些高层的特征,这样是不同数据集的...原创 2020-04-25 23:59:23 · 4095 阅读 · 0 评论 -
python装饰器的简单理解
python装饰器有着非常重要且广泛的应用。在python语言中,引入装饰器的目的主要是简化代码,避免代码块的重复。装饰器的引入可以对函数进行扩展,使函数具有额外的功能,如事务处理、性能测试、缓存等等。这里我们举「计算函数执行时间」这个例子。计算某个函数的执行时间,可以使用如下代码:def func1(): start = time() sleep(1) #do somethi...原创 2020-04-13 02:41:38 · 5387 阅读 · 0 评论 -
python的生成器
生成器算是python中比较实用的一个工具,但由于其他主流编程语言中没有“生成器”这个概念,所以生成器经常容易被忽视。那么使用生成器有什么好处呢?我认为好处有两点:其一是减少内存的使用,其二是简化代码,同时可以增强代码的可读性。举个栗子,比如要生成一个斐波那契数列,如果不用生成器,而是用列表实现的话,代码大致如下:def fib(n): prev, cur = 0, 1 re...原创 2020-04-08 00:07:42 · 756 阅读 · 0 评论