- 博客(49)
- 收藏
- 关注
原创 Python学习记录
《Python基础教程(第三版)》3.4.3 joindirs = ' ', 'usr', 'bin', 'env''/'.join(dirs)' /usr/bin/env'print('C:' + '\\'.join(dirs))C: \usr\bin\env但函数split()却无法拆分'C:\usr\bin\env'.split('\\')File "<ipython-input-36-58c89c91d525>", line 1 'C:\usr\bin\env'.
2021-07-21 20:59:07 250
原创 零基础入门语义分割-Task6 模型集成
6 模型集成本章讲解的知识点包括:集成学习方法、深度学习中的集成学习和结果后处理思路。6.1 学习目标学习集成学习方法以及交叉验证情况下的模型集成学会使用深度学习模型的集成学习6.2 集成学习方法在机器学习中的集成学习可以在一定程度上提高预测精度,常见的集成学习方法有Stacking、Bagging和Boosting,同时这些集成学习方法与具体验证集划分联系紧密。由于深度学习模型一般需要较长的训练周期,如果硬件设备不允许建议选取留出法,如果需要追求精度可以使用交叉验证的方法。6.3 深度学习
2021-03-07 19:12:02 269
原创 Task05:模型训练与验证
零基础入门语义分割-Task5 模型训练与验证一个成熟合格的深度学习训练流程至少具备以下功能:在训练集上进行训练,并在验证集上进行验证;模型可以保存最优的权重,并读取权重;记录下训练集和验证集的精度,便于调参。5 模型训练与验证为此本章将从构建验证集、模型训练和验证、模型保存与加载和模型调参几个部分讲解,在部分小节中将会结合Pytorch代码进行讲解。5.1 学习目标理解验证集的作用,并使用训练集和验证集完成训练学会使用Pytorch环境下的模型读取和加载,并了解调参流程5.2 构造验证
2021-03-04 21:38:05 307 1
原创 损失函数与评价函数
4.1 学习目标掌握常见的评价函数和损失函数Dice、IoU、BCE、Focal Loss、Lovász-Softmax;掌握评价/损失函数的实践;4.2 TP TN FP FN在讲解语义分割中常用的评价函数和损失函数之前,先补充一**TP(真正例 true positive) TN(真反例 true negative) FP(假正例 false positive) FN(假反例 false negative)**的知识。在分类问题中,我们经常看到上述的表述方式,以二分类为例,我们可以将所有的样本预
2021-03-01 23:32:30 689
原创 零基础入门语义分割-Task3网络模型结构发展
test_mask = pd.read_csv('D:/WorkPlace/Jupyter/test_a_samplesubmit.csv', sep='\t', names=['name', 'mask'])test_mask['name'] = test_mask['name'].apply(lambda x: 'D:/WorkPlace/Jupyter/test_a/' + x)for idx, name in enumerate(tqdm_notebook(test_mask['name'].
2021-02-26 22:28:22 658
原创 Task02:Baseline学习及改进
数据读取SODA_label处理1.1标签含义1.2将标签转化为我们熟悉的pandas形式label_path= './data/SODA_label.nc'label_trans_path = './data/' nc_label= Dataset(label_path,'r') years= np.array(nc_label['year'][:])months= np.array(nc_label['month'][:])year_month_index = []vs= [].
2021-02-25 22:01:13 184
原创 零基础入门语义分割-Task2 数据扩增
2 数据扩增方法本章主要内容为数据扩增方法、OpenCV数据扩增、albumentations数据扩增和Pytorch读取赛题数据四个部分组成。2.2 常见的数据扩增方法数据扩增是一种有效的正则化方法,可以防止模型过拟合,在深度学习模型的训练过程中应用广泛。数据扩增的目的是增加数据集中样本的数据量,同时也可以有效增加样本的语义空间。需注意:不同的数据,拥有不同的数据扩增方法;数据扩增方法需要考虑合理性,不要随意使用;数据扩增方法需要与具体任何相结合,同时要考虑到标签的变化;对于图像分类,数据扩增方
2021-02-23 21:56:56 157
原创 Task01:比赛全流程体验
一、配置docker环境推荐下载Docker Desktop配置Docker Desktop二、开通容器镜像服务(推荐阿里云)三、编写文件3.1 读题3.2 操作3.2.1 新建文件夹,如:docker_submit_demo(名字可自拟),并在此文件夹下,新建tcdata文件夹3.2.2 利用python在docker_submit_demo文件夹下编写文件(也可用其他工具),图片和代码如下3.2.3 由于使用python的时候用到了一些库,所以需要编写requirements.txt
2021-02-21 21:24:56 151 1
原创 零基础入门语义分割-Task1 赛题理解
1.3 数据标签赛题为语义分割任务,因此具体的标签为图像像素类别。在赛题数据中像素属于2类(无建筑物和有建筑物),因此标签为有建筑物的像素。赛题原始图片为jpg格式,标签为RLE编码的字符串。RLE全称(run-length encoding),翻译为游程编码或行程长度编码,对连续的黑、白像素数以不同的码字进行编码。RLE是一种简单的非破坏性资料压缩法,经常用在在语义分割比赛中对标签进行编码。RLE与图片之间的转换如下:import numpy as npimport pandas as pdi
2021-02-20 22:38:07 162
原创 Task04:DQN 算法及 Actor-Critic 算法
DQN 是指基于深度学习的 Q-learning 算法,主要结合了价值函数近似(Value Function Approximation)与神经网络技术,并采用了目标网络和经历回放的方法进行网络的训练。第二个 tip 是 Dueling DQN。其实 Dueling DQN 也蛮好做的,相较于原来的 DQN,它唯一的差别是改了 network 的架构。Q-network 就是 input state,output 就是每一个 action 的Q value。Dueling DQN 唯一做的事情是改了 ne
2020-11-03 21:24:16 424
原创 task 03 策略梯度及 PPO 算法
在 reinforcement learning 中有 3 个components,一个actor,一个environment,一个reward function。如果要 learn 的 agent 跟和环境互动的 agent 是同一个的话, 这个叫做on-policy(同策略)。如果要 learn 的 agent 跟和环境互动的 agent 不是同一个的话, 那这个叫做off-policy(异策略)。Tips:第一个 tip 是 add 一个 baseline。 如果 given state s
2020-10-29 21:41:12 262
原创 Task02:马尔可夫决策过程及表格型方法
在马尔可夫决策过程中,它的环境是 fully observable ,就是全部可以观测的。但是很多时候环境里面有些量是不可观测的,但是这个部分观测的问题也可以转换成一个 MDP 的问题。如果某一个过程满足马尔可夫性质(Markov Property),就是说未来的转移跟过去是独立的,它只取决于现在。马尔可夫性质是所有马尔可夫过程的基础。马尔可夫奖励过程(Markov Reward Process, MRP) 是马尔可夫链再加上了一个奖励函数。Bellman Equation 定义了当前状态跟未来状态之
2020-10-23 21:35:54 212
原创 Task01:强化学习基础
Reinforcement Learning一些概念强化学习讨论的问题是一个 智能体(agent) 怎么在一个复杂不确定的环境(environment)里面去极大化它能获得的奖励。当 agent 的状态跟环境的状态等价的时候,我们就说这个环境是 full observability,就是全部可以观测。换句话说,当 agent 能够观察到环境的所有状态时,我们称这个环境是完全可观测的(fully observed)。在给定的环境中,有效动作的集合经常被称为动作空间(action space)。像 Ata
2020-10-20 21:38:15 145
原创 Task03:查找1
搜索插入位置class Solution: def searchInsert(self, nums: List[int], target: int) -> int: if target < nums[0]or (len(nums) == 1 and target == nums[0]): return 0 if target > nums[-1]: return len(nums) for i in range(len(num.
2020-08-25 22:22:32 127
原创 Task02:动态规划
1.最长回文子串class Solution: def longestPalindrome(self, s: str) -> str: n = len(s) dp = [[False] * n for _ in range(n)] ans = "" # 枚举子串的长度 l+1 for l in range(n): # 枚举子串的起始位置 i,这样可以通过 j=i+l 得到子串的结束位置
2020-08-22 22:05:20 117
原创 Task01:分治
1.实现 pow(x, n) ,即计算 x 的 n 次幂函数。class Solution: def myPow(self, x, n): if n < 0: return self.myPow(1/x,-n) if n == 0: return 1 if n == 2: return x*x return self.myPow(self.myPow(x,n
2020-08-19 22:49:17 105
原创 task09 文件与文件系统
文件与文件系统打开文件open(file, mode=‘r’, buffering=None, encoding=None, errors=None, newline=None, closefd=True) Open file and return a stream. Raise OSError upon failure.file: 必需,文件路径(相对或者绝对路径)。mode: 可选,文件打开模式buffering: 设置缓冲encoding: 一般使用utf8errors: 报错级别n.
2020-08-07 21:31:58 181
原创 Task08:模块与datetime模块
模块在前面我们脚本是用 Python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了。为此 Python 提供了一个办法,把这些定义存放在文件中,为一些脚本或者交互式的解释器实例使用,这个文件被称为模块(Module)。模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 Python 标准库的方法。什么是模块容器 -> 数据的封装函数 -> 语句的封装类 -&
2020-08-07 21:26:05 231
原创 Task07:类、对象与魔法方法
类与对象对象 = 属性 + 方法对象是类的实例。换句话说,类主要定义对象的结构,然后我们以类为模板创建对象。类不但包含方法定义,而且还包含所有实例共享的数据。封装:信息隐蔽技术我们可以使用关键字 class 定义 Python 类,关键字后面紧跟类的名称、分号和类的实现。继承:子类自动共享父类之间数据和方法的机制多态:不同对象对同一方法响应不同的行动2. self 是什么?Python 的 self 相当于 C++ 的 this 指针。类的方法与普通的函数只有一个特别的区别 —— 它们
2020-08-05 23:02:15 181
原创 Task06:函数与Lambda表达式
函数与Lambda表达式函数还记得 Python 里面“万物皆对象”么?Python 把函数也当成对象,可以从另一个函数中返回出来而去构建高阶函数,比如:参数是函数返回值是函数函数的定义函数以def关键词开头,后接函数名和圆括号()。函数执行的代码以冒号起始,并且缩进。return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None。函数参数Python 的函数具有非常灵活多样的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数。从简到
2020-08-02 20:13:01 242
原创 Task05:字典、集合和序列
字典可变类型与不可变类型序列是以连续的整数为索引,与此不同的是,字典以"关键字"为索引,关键字可以是任意不可变类型,通常用字符串或数值。字典是 Python 唯一的一个 映射类型,字符串、元组、列表属于序列类型。那么如何快速判断一个数据类型 X 是不是可变类型的呢?两种方法:麻烦方法:用 id(X) 函数,对 X 进行某种操作,比较操作前后的 id,如果不一样,则 X 不可变,如果一样,则 X 可变。便捷方法:用 hash(X),只要不报错,证明 X 可被哈希,即不可变,反过来不可被哈希,即
2020-07-31 22:43:41 199
原创 Task04:列表、元组和字符串
列表列表的定义列表的创建向列表中添加元素list.append(obj) 在列表末尾添加新的对象,只接受一个参数,参数可以是任何数据类型,被追加的元素在 list 中保持着原结构类型。list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。list.insert(index, obj) 在编号 index 位置插入 obj。删除列表中的元素list.remove(obj) 移除列表中某个值的第一个匹配项。list.pop([index=-1]
2020-07-28 20:52:49 161
原创 Task03 异常处理
异常就是运行期检测到的错误。计算机语言针对可能出现的错误定义了异常类型,某种错误引发对应的异常时,异常处理程序将被启动,从而恢复程序的正常运行。1. Python 标准异常总结BaseException:所有异常的 基类Exception:常规异常的 基类StandardError:所有的内建标准异常的基类ArithmeticError:所有数值计算异常的基类FloatingPointError:浮点计算异常OverflowError:数值运算超出最大限制ZeroDivisionError:
2020-07-25 20:55:25 147
原创 Task 2: 条件循环结构
条件语句1.if 语句if 语句的 expr_true_suite 代码块只有当条件表达式 expression 结果为真时才执行,否则将继续执行紧跟在该代码块后面的语句。单个 if 语句中的 expression 条件表达式可以通过布尔操作符 and,or和not 实现多重条件判断。2.if - else 语句Python 提供与 if 搭配使用的 else,如果 if 语句的条件表达式结果布尔值为假,那么程序将执行 else 语句后的代码。3.if - elif - else 语句4.as
2020-07-23 21:26:00 405
原创 Task01:变量、运算符、数据类型及位运算
注释在 Python 中,# 表示注释,作用于整行。‘’’ ‘’’ 或者 “”" “”" 表示区间注释,在三引号之间的所有内容被注释。运算符算术运算符比较运算符位运算符其他运算符3. 变量和赋值在使用变量之前,需要对其先赋值。变量名可以包括字母、数字、下划线、但变量名不能以数字开头。Python 变量名是大小写敏感的,foo != Foo。4. 数据类型与转换5. print() 函数print(*objects, sep=' ', end='\n', file=sy.
2020-07-22 20:45:19 191
原创 Task04 HOG特征描述算子
4.1 简介本次任务将学习一种在深度学习之前非常流行的图像特征提取技术——方向梯度直方图(Histogram of Oriented Gradients),简称HOG特征。HOG特征是在2005年CVPR的会议发表,在图像手工特征提取方面具有里程碑式的意义,当时在行人检测领域获得了极大成功。学习HOG特征的思想也有助于我们很好地了解传统图像特征描述和图像识别方法,本次任务我们将学习到HOG背后的设计原理,和opencv的实现。4.2 学习目标理解HOG特征的原理和思想使用OpenCV的HOG算法实
2020-07-06 22:22:53 366
原创 Task03 Haar特征描述算子-人脸检测
3.1简介Haar-like特征最早是由Papageorgiou等应用于人脸表示,在2001年,Viola和Jones两位大牛发表了经典的《Rapid Object Detection using a Boosted Cascade of Simple Features》和《Robust Real-Time Face Detection》,在AdaBoost算法的基础上,使用Haar-like小波特征和积分图方法进行人脸检测,他俩不是最早使用提出小波特征的,但是他们设计了针对人脸检测更有效的特征,并对Ad
2020-07-02 22:50:06 148
原创 task02 LBP特征描述算子
Datawhale计算机视觉基础-图像处理(下)-Task02 LBP特征描述算子-人脸检测2.1 简介 LBP指局部二值模式(Local Binary Pattern),是一种用来描述图像局部特征的算子,具有灰度不变性和旋转不变性等显著优点。LBP常应用于人脸识别和目标检测中,在OpenCV中有使用LBP特征进行人脸识别的接口,也有用LBP特征训练目标检测分类器的方法,OpenCV实现了LBP特征的计算,但没有提供一个单独的计算LBP特征的接口。也就是说OpenCV中使用了LBP算法,但是没有提供函
2020-06-28 22:42:14 162
原创 Task01 Harris特征点检测器-兴趣点检测
1.1 简介在图像处理领域中,特征点又被称为兴趣点或者角点,它通常具有旋转不变性和光照不变性和视角不变性等优点,是图像的重要特征之一,常被应用到目标匹配、目标跟踪、三维重建等应用中。点特征主要指图像中的明显点,如突出的角点、边缘端点、极值点等等,用于点特征提取的算子称为兴趣点提取(检测)算子,常用的有Harris角点检测、FAST特征检测、SIFT特征检测及SURF特征检测。本次任务学习较为常用而且较为基础的Harris角点检测算法,它的思想以及数学理论能够很好地帮助我们了解兴趣点检测的相关原理。1.
2020-06-24 19:58:08 201
原创 PANDAS第六次打卡
一、 2002 年-2018 年上海机动车拍照拍卖import numpy as npimport pandas as pddf = pd.read_csv('data/2002年-2018年上海机动车拍照拍卖.csv')df.head()问题(1) 哪一次拍卖的中标率首次小于 5%?one=df['Total number of license issued']/df['Tot...
2020-05-01 21:56:23 256
原创 PANDAS第五次打卡
第5章 合并一、append与assignappend方法(a)利用序列添加行(必须指定name)(b)用DataFrame添加表assign方法该方法主要用于添加列,列名直接由参数指定:二、combine与updatecomine方法comine和update都是用于表的填充函数,可以根据某种规则填充(a)填充对象可以看出combine方法是按照表的顺序轮流进行逐列循环的...
2020-04-30 22:11:26 140
原创 PANDAS第四次打卡
一、透视表pivot一般状态下,数据在DataFrame会以压缩(stacked)状态存放,例如上面的Gender,两个类别被叠在一列中,pivot函数可将某一列作为新的cols:然而pivot函数具有很强的局限性,除了功能上较少之外,还不允许values中出现重复的行列索引对(pair)因此,更多的时候会选择使用强大的pivot_table函数pivot_table由于功能更多,速...
2020-04-28 20:20:21 127
原创 PANDAS第三次打卡
import numpy as npimport pandas as pddf = pd.read_csv(‘data/table.csv’,index_col=‘ID’)df.head()一、SAC过程内涵SAC指的是分组操作中的split-apply-combine过程其中split指基于某一些规则,将数据拆成若干组,apply是指对每一组独立地使用函数,combine指将每一...
2020-04-26 22:30:03 221
原创 PANDAS第二次打卡
第2章 索引import numpy as npimport pandas as pddf = pd.read_csv(‘data/table.csv’,index_col=‘ID’)df.head()School Class Gender Address Height Weight Math PhysicsID 1101 S_1 C_1 M street_1 173 ...
2020-04-23 22:18:14 164
原创 CV第二次打卡
Datawhale 计算机视觉基础-图像处理(上)-Task02 几何变换2.1 简介该部分将对基本的几何变换进行学习,几何变换的原理大多都是相似,只是变换矩阵不同,因此,我们以最常用的平移和旋转为例进行学习。在深度学习领域,我们常用平移、旋转、镜像等操作进行数据增广;在传统CV领域,由于某些拍摄角度的问题,我们需要对图像进行矫正处理,而几何变换正是这个处理过程的基础,因此了解和学习几何变换也...
2020-04-23 22:10:45 179
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人