机器学习的套路
熊熊熊

其他 (机器学习)

1. 前言 这里说说机器学习问题分析的一般性过程,尽管存在各种各样的机器学习问题,但大体上的步骤及最佳实践都有一定的套路。 2. 理解问题 首先得理解要解决的是什么问题,比如:1)业务上要解决什么问题2)该问题涉及到的信息管道有哪些3)如何采集数据,数据源在哪4)数据是完整的吗,数据刻度最小是多少5)数据是定期发布的还是实时获取的6)确定...

1. 前言

这里说说机器学习问题分析的一般性过程,尽管存在各种各样的机器学习问题,但大体上的步骤及最佳实践都有一定的套路。

2. 理解问题

首先得理解要解决的是什么问题,比如:
1)业务上要解决什么问题
2)该问题涉及到的信息管道有哪些
3)如何采集数据,数据源在哪
4)数据是完整的吗,数据刻度最小是多少
5)数据是定期发布的还是实时获取的
6)确定影响模型的有价值因素
7)工作量

3. ETL处理

待收集的数据可能是表格数据、一串实时数据,N维矩阵或其他类型数据,同时也可能是多种存储介质,通过ETL处理将混合的数据源转成我们需要的格式,生成结构化数据类型。

4. 数据预处理

对于收集的数据,可能存在缺陷,比如空值、异常值或数据产生器本身引起的偏差。这些缺陷可能导致模型效果不佳,同时为了优化更快收敛,需要做数据标准化处理,所以需要进行数据预处理。

1)比如缺失值可以简单设为0、列平均值、中值、最高频率值、甚至是稳健算法和knn等等。

2) 比如标准化数据集,使数据集正态分布,平均值为0标准差为1。而且还达到了特征缩放效果。

5. 模型定义

机器学习主要就是模型问题,我们通过机器学习来对现实进行抽象建模,以解决现实问题。所以机器学习主要工作就是使用哪种模型来建模,尽管各种大大小小模型一大堆,但大体上也有些套路。
1)要完成的任务是预测结果还是对数据进行分类,前者是回归问题,后者是分类问题。
2)对于分类问题,如果需要数据标记,则是监督学习,否则是非监督学习,使用聚类技术。
3)数据是否为连续的,是的话考虑序列模型,比如自回归和RNN之类的。
4)尽量使用简单模型,如果能用比如用单变量或多变量的线性回归或逻辑回归。
5)简单模型解决不了的情况,可通过多层神经网络解决,比如复杂的非线性。
6)使用了多少个维度的变量,将作用大的特征提取出来,并把不重要的特征去掉,比如用PCA降维。
7)不是监督也不是非监督?考虑强化学习?

6. 损失函数

损失函数用于衡量模型质量,它可以度量模型预测值与实际期望之间的差距,选择不合适的函数可能会影响模型的准确性,甚至影响收敛速度。

7. 模型训练

数据准备好了,模型定义好了,就可以开始训练模型。训练中涉及几个关键术语:迭代,表示模型计算和调整的一次过程;批,数据集每次以一批为单位输入到模型中;epoch,每当整个数据集被处理完称为一个epoch。
另外,训练模型前先调整模型的初始权重,以便能更快更好地收敛。不能初始化为0,否则将导致学习失败。一般可以使用标准化技术将权重初始化。

8. 数据集分割

一般将整个数据集分成三组,比例是7:2:1,第一组为训练集,用于调整模型参数;第二种为验证集,用于比较多个模型直接的表现;第三组为测试集,用于测试训练得到的模型准确性。

9. 模型效果

模型训练完后要看效果如何,要看看泛化的能力。
(1)对于回归问题,可以通过下面几个指标来了解拟合效果。
平均绝对误差
中值绝对误差
均方误差等等

(2)对于分类问题,可以通过下面几个指标来了解分类效果。
准确性
精确率
召回率
F值
混淆矩阵

(3)对于聚类问题,可以通过下面几个指标来了解聚类效果。
轮廓系数
同质性
完整性
V度量

208人浏览 0条评论 2 收起
2019-05-10 15:21:39
条评论
numactl 使用说明
minus one

其他 (系统编程)

Name numactl - Control NUMA policy for processes or shared memory numactl -用于控制进程与共享存储的NUMA技术机制NUMA -- (Non Uniform Memory Access Architecture)非统一内存访问架构Synopsis 概述numactl...

Name
numactl - Control NUMA policy for processes or shared memory
numactl -用于控制进程与共享存储的NUMA技术机制
NUMA -- (Non Uniform Memory Access Architecture)非统一内存访问架构
Synopsis
概述
numactl [--interleave nodes] [- -preferred node] [--membind nodes]
[--cpunodebind nodes] [--physcpubind cpus] [--localalloc] [--] {arguments ...}
numactl --show
numactl --hardware
numactl [--huge ] [--offset offset] [--shmmode shmmode] [--length length] [--strict]
[--shmid id] --shm shmkeyfile | --file tmpfsfile
[--touch] [--dump] [ --dump-nodes] memory policy
Description
使用方法介绍
numactl runs processes with a specific NUMA scheduling or memory placement policy.
使用numactl命令启动的进程会按照特定的NUMA调度机制或是在指定的内存空间位置上运行.
The policy is set for command and inherited by all of its children .
让进程按照NUMA调度机制运行是通过命令行来实现的,而被设定进程得子进程也会遵照NUMA调度机制运行.
In addition it can set persistent policy for shared memory segments or files.
除了将NUMA调度机制设置在进程上之外,还可通过将该NUMA调度机制作用在共享内存段或是文件对象上来实现NUMA策略的持久化.
/也就是把可持久化的对象(内存空间或是文件实体)设定成符合NUMA调度机制的实体,这样运行在该块空间上的所有数据的调度都可以按照NUMA策略来执行
Use
-- before command if using command options that could be confused with numactl options.
numactl命令的使用方法
--在使用该命令之前,如果不了解每个命令选项的确切含义的话,只会是使用命令使 者徒增麻烦
Policy settings are :
关于numactl命令的不同选项解释如下
--interleave=nodes, -i nodes
Set a memory interleave policy. Memory will be allocated using round robin on nodes.
这个选项用于设定内存的交织分配模式。也就是说系统在为多个节点分配内存空间的时候,将会以轮询分发的方式被分配给这多个节点.
When memory cannot be allocated on the current interleave target fall back to other nodes.
如果在当前众多的交织分配内存节点中的目标节点无法正确的分配内存空间的话,内存空间将会由其他的节点来分配。
Multiple nodes may specified on --interleave, --membind and --cpunodebind.
多节点可以通过--interleave , --membind和--cpunodebind命令来指定.
You may specify "all" , which means all nodes in the current cpuset. nodes may be specified as N,N,N or NN or N, NN or NN , NN and so forth.
也可以通过使用'all'这个选项, 'all'选项是用来选定在当前运行的cpu集合中的所有节点.节点可以通过N,N,N或是NN或是N,NN或者是NN , NN诸如此类的
方式来指定
/其中N,N,N --> node1,node2,node0可以看做是将numa调度机制施加到node1, node2, node3的上面
/而NN or N ---> node1-node7, node12可以看做是将numa机制施加到[node1,node7]和单独的node12节点上面,
/后面的NN等等都是在此基础上演变而来的
Relative nodes may be specified as +N,N,N or +NN or + N,NN and so forth.
如果节点之间具有相关性的话,是可以通过+N,N,N或者是+NN或者是+N,NN这种设定方式来表明这些节点之间是有相关性的.
The +indicates that the node numbers are relative to the process' set of allowed cpu in its current cpuset .
上面命令中使用'+'符号作为修饰的节点与被准许留在在当前cpu集合中的cpu上所运行的进程是一一对应的.
A !NN notation indicates the inverse of NN , in other words all nodes except NN.
!NN这种表述方式表明的是NN含义的翻转,也就是说,某个命令将会被施加在除了NN这一区间内的节点以外的所有节 集上面
If used with + notation , specify !+NN .
如果在使用'!'符号的同时,也需要使用'+'符号的话,按照'!+NN'这个顺序来使用。
--membind=nodes, -m nodes
Only allocate memory from nodes. Allocation will fail when there is not enough memory available on these nodes.
选项'--membind'仅用来从节点中分配内存空间所用。如果在这些节点中无法分配出所请求的空间大小的话该分配操作将会失败.
nodes may be specified as noted above .
上述命令中指定需要分配空间的nodes的方式可以遵照上述N,N,N , NN , N这种方式来指定.
--cpunodebind=nodes, -N nodes
Only execute process on cpus. This accepts cpu numbers as shown in the processor fields of /proc/cpuinfo , or relative cpus as in relative to the current cpuset.
上述命令仅用于施加在运行与cpu上的进程。这个命令用于显示cpu的个数,cpu数目信息同样记录在系统中的存放处理器领域信息的/proc/cpuinfo文件夹下,
或者是按照关联的中央处理器信息在当前的中央处理器集中所存放.
You may specify "all" , which means all cpus in the current cpuset .
使用者可以通过制定"all"这个选项来选定当前中央处理器集合中的所有中央处理器对象.
Physical cpus may be specified as N,N ,N or NN or N, NN or NN,NN and so forth .
物理(而非程序中所抽象的) cpu实体也可以按照N,N,N或是NN或者是N,NN或是NN,NN诸多选定方式进行选定.
Relative cpus may be specified as +N,N,N or +NN or +N,NN and so forth.
相互关联的cpu实体也可以按照+N,N,N或是+NN ,或+ N,NN来选定并表明他们之间的关系.
The +indicates that the cpu numbers are relative to the process' set of allowed cpu in its current cpuset.
上述命令中的'+'符号用于表明中央处理器的标号与当前其所在的中央处理器集合中某个cpu上运行的进程集合中的进程之间是有一定的关联的。
A !NN notation indicates that the cpu inverse of NN , in other words all cpus except NN if used with + notation , specify !+NN .
!NN这种表述方式表明的是NN含义的翻转,也就是说,某个命令将会被施加在除了NN这一区间内的节点以外的所有节点集上
--localalloc , -l
Always allocate on the current node.
这个命令选项通常是为当前的节点分配内存的
--preferred=node
Preferably allocate memory on node, but if memory cannot be allocated there fallback to other nodes.
该命令由于指定优先分配内存空间的节点,如果无法将空间分配给该节点的话,应该分配给该节点上的空间将会被分发到其他的节点上
This option takes only a single node number . Relative notation may be used.
该命令选项后面仅接收一个单独的节点标号.相关的表示方式也可以使用.
--show,-s
Show NUMA policy setting of the current process.
该命令用于显示NUMA机制作用在当前运行的那些进程上
--hardware , -H
Show inventory of available nodes on the system.
该命令用于显示当前系统中有多少个可用的节点.
Numactl can set up policy for a SYSV shared memory segmemnt or a file in shmfs/hugetlbfs.
numactl命令也可以作用在系统级的共享内存段上或者是施加在shmfs/hugetlbfs的文件上
This policy is persistent and will be used by all mappings from that shared memory .
numa的这种机制是可以被持久化的,并且将被施加numa机制的共享内存映射到自己地址空间中的进程都具有numa机制
The order of options matters here.
调用命令时所使用的参数选项按照下面的顺序来使用
The specification must at least include either of --shm , --shmid , --file to specify the shared memory segment or file
and a memory policy like described above ( --interleave , --localalloc , --preferred , --membind) .
在使用命令的时候必须至少包括--shm ,--shmid , --file来表明numa机制作用在共享内存段上还是文件上面,
并且还要指定上面介绍过的操作内存的方式(通过这些选项来指定--interleave, --localalloc, --preferred , --membind )

--huge
When creating a SYSV shared memory segment use huge pages . Only valid before --shmid or --shm
当创建一个基于大内存页面的系统级的共享内存段的时候,使用--huge这个选项。
--huge选项仅在--shmid或是--shm命令的后面使用才有效.
--offset
Specify offset into the shared memory segment. Default 0. Valid uints are m (for MB), g (for GB) , k (for KB) , otherwise it specifies bytes.
该参数选项用于指定共享内存段中的位移量的偏移。默认的情况下偏移量是0 。有效的偏移量单位是m (用于表示MB)
g (用于表示GB) , k (用于表示KB ),其他没有指定的被认为是以字节为单位.
--strict
Given an error when a page in the policied area in the shared memory segment already was faulted in with a conflicting policy .
Default is to silently ignore this .
这个参数选项当施加了NUMA调度机制的共享内存段区域的页面被施加了另一个机制而导致错误的时候,
使用--strict选项将会把错误信息显示出来.默认情况是不使用该选项的。
--shmmode shmmode
Only valid before --shmid or --shm When creating a shared memory segment set it to numeric mode shmmode .
该选项仅在--shmid或是--shm之前使用才会生效。当创建一个共享内存段的时候,通过整型数值来指定
共享内存的共享的模式类型.
--length length
Apply policy to length range in the shared memory segment or make the segment length long Default is to use the remaining
length Required when a shared memory segment is created and specifies the length of the new segment then .
Valid units are m ( for MB ) , g( for GB) , k ( for KB) , otherwise it specifies bytes.
--shmid id
Create or use an shared memory segment with numeric ID id .
通过ID号码来创建或使用一个共享内存段。
(如果共享内存段已经存在,那么通过shmid来指定下面要使用某个ID的共享内存段;如果该ID对应的共享内存段并不存在的话,那么就创建一个)
--shm shmkeyfile
Create or use an shared memory segment , with the ID generate using fork(3) from shmkeyfile
通过存放在shmkeyfile(共享内存-键文件)中的ID号码来创建或者是使用一个共享内存段。
访问shmkeyfile文件的进程是通过fork(3 arguments)方法来实现的.
--file tmpfsfile
Set policy for a file in tmpfs or hugetlbfs
将numa机制施加于文件上面,这个文件属于tmpfs或者是hugetlbfs这种特殊的文件系统
--touch
Touch pages to enforce policy early. Default is to not touch them , the policy is applied when a applications maps and accesses a page.
通过将numa机制施加于刚刚页面上来实现内存的早期numa化。
默认情况下是不使用该选项,如果存在映射或是访问页面的应用的话,将会使用该早期实行NUMA机制的这种方法.
--dump
Dump policy in the specified range .
该选项用于废除将已经numa化的特定区域上的NUMA性质.
Valid node specifiers
all All nodes
number Node number
number1{,number2} Node number1 and Node number2
number1-number2 Nodes from number1 to number2
!nodes Invert selection of the following specification .
(--dump )选项后,有效指定node的书写方式
all用于将所有的节点上的NUMA特性移除
number通过指定node后接的数值来废除该数字对应的node
number1(number2) node number1(node number2)上的NUMA特性将会被移除
number1-number2 node number1 -- node number2区间上的所有存在的node的NUMA特性将会被移除
!nodes除了nodes所指定的节点以外的所有节点上的NUMA特性全都会被移除
Examples
使用示例
numactl --physcpubind=+0-4,8-12 myapplic arguments
Run myapplic on cpus 0-4 and 8-12 of the current cpuset .
上述的这个命令用于将myapplic程序进程运行在当前中央处理器集合的0 -4和8-12标号的cpu上面.
numactl --interleave=all bigdatabase arguments
Run big database with its memory interleaved on all CPUs.
将大型数据库系统进程,并且允许该进程使用所有cpu交替分配的内存空间.( round robin内存分配机制)
numactl --cpubind=0 --membind=0,1 process
Run process on node 0 with memory allocated on node0 and 1 .
上述的命令是将进程运行在node0上面,而进程运行所需要的内存空间则是从node0和node1上面分配而来的
numactl --cpubind=0 --membind=0,1 --process -l
Run process as above, but with an option (-l) that would be confused with a numactl option .
运行上述的程序,但是这个命令中有一个-l的选项可能会和numactl的设置选项弄混淆
numactl --preferred=1 numactl --show
Set preferred node 1 and show the resulting state.
将node1这个节点设置为优先运行进程的节点,设置之后调用--show参数来显示当前进程运行的状态信息
numactl -- interleave=all --shmkeyfile /tmp/shmkey
interleave all of the sysv shared memory region specified by /tmp/shmkey over all nodes.
交织/交替将系统中所有在/tmp/shmkey文件夹下创建的系统级的共享内存域(因为内存区间段可能有多个,并且有可能出现不连续的,这个命令是将其全部选上)
分配给系统中的所有节点
numactl --offset=1G --length=1G --membind= 1 --file /dev/shm/A --touch
Bind the second gigabyte in the tmpfs file /dev/shm/A to node1.
在tmpfs文件系统中文件夹/dev/shm/下面创建1 GB大小的文件,并将该文件命名为A ,然后将该1GB的文件与node 1进行绑定.
/也就是说node1中使用的内存是来自于文件系统中的文件.
numactl --localalloc /dev/shm/file
Reset the policy for the shared memory file to the default localalloc policy.
将共享文件的NUMA特性重置成本地默认调度机制
Notes
注意
Requires an NUMA policy aware kernel .
执行numactl命令之前,需要明确知道当前主机的内核是支持NUMA技术的.
Command is not executed using s shell. If you want to use shell metacharacters in the child use sh -c as wrapper.
上述命令在shell脚本中无法被执行。如果想要在子脚本中使用shell元字符的话需要在前面加上用作封装器的-c选项
Setting policy for hugetlbfs file does currently not work because it cannot be extended by truncate.
将NUMA机制施加于hugetblfs文件系统中的文件上的时是不会立即生效的,因为hugetblfs这个文件系统无法以truncate的方式打开文件.
/在普通文件系统中,truncate打开文件的方式是这样的:当文件不在指定路径下存在的时候,会在该路径下创建该文件,然后将其打开;
/当文件存在的时候,会自己打开该文件
Shared memory segments larger than numactl's address space cannot be completely policied.
如果共享内存段的大小要大于执行numactl这一命令进程的地址空间要打的话,不能够确保全部共享内存区域都具有NUMA机制.
This could be a problem on 32bit architectures.
在32位架构主机上就有可能出现这个问题(共享内存段无法完全的实现NUMA机制).
Changing it piece by piece may work .
把(范围区间十分大的)共享内存段分割成多个小段,然后一段一段的NUMA化可能会解决这个问题.
The old --cpubind which accepts node numbers, not cpu numbers, is deprecated and replaced with the new --cpunodebind and --physcpubind optins.
以前的旧命令选项--cpubind接收的数字表示的是node的个数而非cpu的个数,这个命令已经过时了,取而代之的是--cpunodebind和--physcpubind
(分别用于设定绑定的cpu中节点的个数,和绑定的物理cpu的个数)
Files
关于系统文件
/ proc/cpuinfo for the listing of active CPUs.
位于/proc/cpuinfo路径下的文件记录的是当前活跃状态的CPU的信息
/sys/devices/system/node/node*/numastat for NUMA memory hit statistics.
/sys/devices/system/node/node*/ numastat文件用于记录的是使用NUMA调度策略之后,内存命中率等相关统计信息

292人浏览 0条评论 0 收起
2019-06-27 20:10:56
条评论
markdown编辑器常用功能汇总
Markdown是一种纯文本格式的标记语言。通过使用简单的语法,可以给普通文本增加样式,使其排版更加美观。 下面总结了一些常用的markdown语法,方便查阅和使用。 1. 标题 通过在文字前面增加 # 来使其变为标题,几个 # 就是几级标题 # 一级标题 ## 二级标题 ### 三级标题 #### 四级标...

Markdown是一种纯文本格式的标记语言。通过使用简单的语法,可以给普通文本增加样式,使其排版更加美观。

下面总结了一些常用的markdown语法,方便查阅和使用。

1. 标题

通过在文字前面增加 # 来使其变为标题,几个 # 就是几级标题

# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题

显示样式如下:

一级标题

二级标题

三级标题

四级标题

五级标题
六级标题

2. 代码

通过```(英文模式下Esc下面的键)来实现,还可以在后面跟上语言名称,这样可以根据不同的语言风格来排版代码

```python
print('hello')
```

显示效果如下:

print('hello')

3. 字体

倾斜:用一对*包起来

加粗:用两对*包起来

加粗倾斜:用三对*包起来

删除线:用两对~包起来

*倾斜*
**加粗**
***倾斜加粗***
~~删除线~~

显示效果如下:
倾斜
加粗
倾斜加粗
删除线

4. 插入图片

语法如下:

![图片alt](图片地址 ''图片title'')

图片alt就是显示在图片下面的文字,相当于对图片内容的解释。
图片title是图片的标题,当鼠标移到图片上时显示的内容。title可加可不加

如插入贝熊熊logo的图片:

![贝熊熊](http://beixiongxiong.oss-cn-hangzhou.aliyuncs.com/static/img/base/logo.png "百度logo")

贝熊熊

5. 插入超链接

语法如下:

[超链接名](超链接地址 "超链接title")
title可加可不加

如插入贝熊熊的官网地址:

[贝熊熊python社区](http://www.beixiongxiong.com/)

贝熊熊python社区

6. 列表

对于无序列表,使用 -,+,* 加上一个空格均可,格式如下:

- 第一条
+ 第二条
* 第三条
  • 第一条
  • 第二条
  • 第三条

对于有序列表,使用 数字+’.’+空格 的格式来实现

1. 第一
2. 第二
3. 第三
  1. 第一
  2. 第二
  3. 第三

列表的嵌套:敲三个空格实现嵌套

* 第一章
   * 第1节
   * 第2节
   * 第3节
  • 第一章
    • 第1节
    • 第2节
    • 第3节

7. 表格

语法如下:

表头|表头|表头
--|--|--
内容|内容|内容
内容|内容|内容
表头 表头 表头
内容 内容 内容
内容 内容 内容
203人浏览 0条评论 0 收起
2019-05-06 16:02:39
条评论
常用的机器学习数据集
熊熊熊

scikit-learn

数据集对于深度学习模型的重要性不言而喻,然而根据性质、类型、领域的不同,数据集往往散落在不同的资源平台里,急需人们做出整理。少了数据,我们的机器学习和深度学习模型什么也干不了。这么说吧,那些创建了数据集、让我们可以训练模型的 人,都是我们的英雄,虽然这些人常常并没有得到足够的感谢。让人庆幸的是,那批最有价值的数据集后来成了「学术基准线」—...

数据集对于深度学习模型的重要性不言而喻,然而根据性质、类型、领域的不同,数据集往往散落在不同的资源平台里,急需人们做出整理。少了数据,我们的机器学习和深度学习模型什么也干不了。这么说吧,那些创建了数据集、让我们可以训练模型的 人,都是我们的英雄,虽然这些人常常并没有得到足够的感谢。让人庆幸的是,那批最有价值的数据集后来成了「学术基准线」——被研究人员广泛引用,尤其在算法变化的对比上;不少名字则成为圈内外都耳熟能详的名 称,如 MNIST、CIFAR 10 以及 Imagenet 等。

图像分类领域

1)MNIST
经典的小型(28x28 像素)灰度手写数字数据集,开发于20世纪90年代,主要用于测试当时最复杂的模型;到了今日,MNIST 数据集更多被视作深度学习的基础教材。fast.ai版本的数据集舍弃了原始的特殊二进制格式,转而采用标准的PNG格式,以便在目前大多数代码库中作为正常的工作流使用;如果您只想使用与原始同样的单输 入通道,只需在通道轴中选取单个切片即可。
下载地址:https://s3.amazonaws.com/fast-ai-imageclas/mnist_png.tgz

2)CIFAR10
10 个类别,多达 60000 张的 32x32 像素彩色图像(50000 张训练图像和 10000 张测试图像),平均每种类别 拥有 6000 张图像。广泛用于测试新算法的性能。fast.ai版本的数据集舍弃了原始的特殊二进制格式,转而采用标准的 PNG 格式,以便在目前大多数代码库中作为正常的工作流使用。
下载地址:https://s3.amazonaws.com/fast-ai-imageclas/cifar10.tgz

3)CIFAR100
与 CIFAR-10 类似,区别在于 CIFAR-100 拥有 100 种类别,每个类别包含 600 张图像(500 张训练图像和 100 张测试图像),然后这 100 个类别又被划分为 20 个超类。因此,数据集里的每张图像自带一个「精细」标签 (所属的类)和一个「粗略」标签(所属的超类)。

4)Caltech 101
包含 101 种物品类别的图像数据集,平均每个类别拥有 40—800 张图像,其中很大一部分类别的图像数量固为 50 张左右。每张图像的大小约为 300 x 200 像素。本数据集也可以用于目标检测定位。
下载地址:https://s3.amazonaws.com/fast-ai-imageclas/caltech_101.tar.gz

自然语言处理领域

1)IMDb Large Movie Review Dataset
用于情感二元分类的数据集,其中包含 25,000 条用于训练的电影评论和 25,000 条用于测试的电影评论,这些电 影评论的特点是两极分化特别明显。另外数据集里也包含未标记的数据可供使用。
下载地址:https://s3.amazonaws.com/fast-ai-nlp/imdb.tgz

2)Wikitext-103
超过 1 亿个语句的数据合集,全部从维基百科的 Good 与 Featured 文章中提炼出来。广泛用于语言建模,当中 包括 fastai 库和 ULMFiT 算法中经常用到的预训练模型。
下载地址:https://s3.amazonaws.com/fast-ai-nlp/wikitext-103.tgz

3)Wikitext-2
Wikitext-103 的子集,主要用于测试小型数据集的语言模型训练效果。
下载地址:https://s3.amazonaws.com/fast-ai-nlp/wikitext-2.tgz

4)AG News496,835 条来自 AG 新闻语料库 4 大类别超过 2000 个新闻源的新闻文章,数据集仅仅援用了标题和描述字段。 每个类别分别拥有 30,000 个训练样本及 1900 个测试样本。
下载地址:https://s3.amazonaws.com/fast-ai-nlp/ag_news_csv.tgz

目标检测定位

1)Camvid: Motion-based Segmentation and Recognition Dataset
700 张包含像素级别语义分割的图像分割数据集,每张图像都经过第二个人的检查和确认来确保数据的准确性。
下载地址:https://s3.amazonaws.com/fast-ai-imagelocal/camvid.tgz

2)PASCAL Visual Object Classes (VOC)
用于类识别的标准图像数据集——这里同时提供了 2007 与 2012 版本。2012 年的版本拥有 20 个类别。训练数 据的 11,530 张图像中包含了 27,450 个 ROI 注释对象和 6,929 个目标分割数据。
下载地址:https://s3.amazonaws.com/fast-ai-imagelocal/pascal-voc.tgz

194人浏览 0条评论 0 收起
2019-05-10 14:04:11
条评论
命名规范
Kong

其他 (web全栈)

项目命名规范 项目:一般用项目对应的英文单词命名;文件及文件夹:全部使用英文小写字母,可以使用中线,不可以出现其他的字符。 CSS命名规范 所有的命名用小写的英文单词;不使用简单的方位词直接命名;不缩写单词,除了一看就可以明白的单词;长名称或词组可以使用下划线作为连接符;避免选择嵌套层级过多,少于3级;不随意使用id,id应该按需要使用...

项目命名规范

项目:一般用项目对应的英文单词命名;
文件及文件夹:全部使用英文小写字母,可以使用中线,不可以出现其他的字符。

CSS命名规范

  1. 所有的命名用小写的英文单词;
  2. 不使用简单的方位词直接命名;
  3. 不缩写单词,除了一看就可以明白的单词;
  4. 长名称或词组可以使用下划线作为连接符;
  5. 避免选择嵌套层级过多,少于3级;
  6. 不随意使用id,id应该按需要使用,不能滥用;
  7. 使用CSS缩写属性。

JS命名规范:

JS变量命名

命名方法:小驼峰命名
命名规范:前缀应当是名词(函数的名字前缀为动词,以此区分变量和函数)

JS函数命名

命名方法:小驼峰式命名法
命名规范:前缀应当是动词

JS常量命名

命名方法:名称全部大写
命名规范:使用大写字母和下划线来组合命名,下划线用以分割单词

192人浏览 0条评论 0 收起
2019-05-31 17:01:38
条评论
全部收起