“人造太阳”计划

动手学习深度学习 3-2 Softmax-regression

天大地大妈咪最大 提交于 2020-02-05 18:58:56
Softmax Regression 1. softmax 回归 softmax 回归主要是解决分类问题,输出是离散值,区别于线性回归,输出单元从一个变成了多个。 注: 需要在notebook文件地址下打开jupyter notebook,如果在子文件夹 04 chapter-deep-learning-basics 下打开,则无法访问 notebook/img 中的图片 1.1 softmax回归模型 softmax回归将输入特征与权重做线性叠加,输出值个数等于标签里的类别数。假设有4种特征和3种输出动物类别,所以权重包含12个标量(带下标的 \(w\) )、偏差包含3个标量(带下标的 \(b\) ),且对每个输入计算 \(o_1, o_2, o_3\) 这3个输出: \[ \begin{aligned} o_1 &= x_1 w_{11} + x_2 w_{21} + x_3 w_{31} + x_4 w_{41} + b_1,\\ o_2 &= x_1 w_{12} + x_2 w_{22} + x_3 w_{32} + x_4 w_{42} + b_2,\\ o_3 &= x_1 w_{13} + x_2 w_{23} + x_3 w_{33} + x_4 w_{43} + b_3. \end{aligned} \] softmax回归是一个单层神经网络

c++标准库queue文件

ぃ、小莉子 提交于 2020-02-05 14:20:37
// queue standard header // Copyright (c) Microsoft Corporation. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception # pragma once # ifndef _QUEUE_ # define _QUEUE_ # include <yvals_core.h> # if _STL_COMPILER_PREPROCESSOR # include <algorithm> # include <deque> # include <vector> # pragma pack(push, _CRT_PACKING) # pragma warning(push, _STL_WARNING_LEVEL) # pragma warning(disable : _STL_DISABLED_WARNINGS) _STL_DISABLE_CLANG_WARNINGS # pragma push_macro("new") # undef new _STD_BEGIN // CLASS TEMPLATE queue template < class _Ty , class _Container = deque < _Ty >> class queue { public :

python-多任务之协程

痴心易碎 提交于 2020-02-03 00:51:00
迭代的概念 使用for循环遍历取值的过程叫做迭代,比如:使用for循环遍历列表获取值的过程 # 例如 for value in [ 2 , 3 , 4 ] : print ( value ) 可迭代对象 使用for循环遍历取值的对象叫做可迭代对象, 比如:列表、元组、字典、集合、range、字符串 如何判断是否为可迭代对象 # 元组,列表,字典,字符串,集合,range都是可迭代对象 from collections . abc import Iterable # 3.7以上版本为导入collections.abc # from collections import Iterable # 判断对象是否是指定类型 result = isinstance ( ( 3 , 5 ) , Iterable ) print ( "元组是否是可迭代对象:" , result ) result = isinstance ( [ 3 , 5 ] , Iterable ) print ( "列表是否是可迭代对象:" , result ) result = isinstance ( { "name" : "张三" } , Iterable ) print ( "字典是否是可迭代对象:" , result ) result = isinstance ( "hello" , Iterable ) print

C++学习笔记,粗糙原代码

柔情痞子 提交于 2020-02-01 10:15:21
C++学习笔记,粗糙原代码 第一次写博客,后面慢慢完善吧,现在先记录一下学习的代码。 目前在按照Essential C++这本书学习,觉得讲的还是不错的,适合小白。我目前学到了第三章第六小节,希望寒假能把这本书学完吧(我看后面东西挺多的) 这是第三章前五节 # include <iostream> # include <vector> # include <string> # include <list> # include <iterator> # include <deque> # include <algorithm> # include <functional> using namespace std ; template < typename IteratorType , typename elemType > IteratorType find ( IteratorType & first , IteratorType & last , const elemType & value ) ; //find函数的声明 int main ( ) { //这一段只是简单的测试泛型指针iterator //vector<string>svec; //vector<string>::iterator iter = svec.begin(); //string sa[4] = {

c++ vector

梦想与她 提交于 2020-02-01 06:06:51
文章目录 1.关于vector 2.定义、初始化 3.插入元素 4.删除元素 5.遍历元素 6.翻转和排序 7.注意问题 7.1删除元素 7.2增加元素 1.关于vector vector数组是一个能存放任意数据类型(类,结构,普通变量类型等)的动态数组,在数据结构中就相当于顺序储存的线性表,寻找元素非常快,但是插入元素的时间却很大(list是一个双向链表,在同一个位置插入大量的数据时速度很快,但是查找的速度就会慢很多) 和普通数组一样可以通过下标索引来进行访问 与其它动态序列容器相比(deques, lists and forward_lists), vector在访问元素的时候更加高效,在末尾添加和删除元素相对高效。对于其它不在末尾的删除和插入操作,效率更低。比起lists和forward_lists统一的迭代器和引用更好。 缺点:当新元素插入时候,这个数组需要被重新分配大小为了增加存储空间。其做法是,分配一个新的数组,然后将全部元素移到这个数组。就时间而言,这是一个相对代价高的任务,因为每当一个新的元素加入到容器的时候,vector并不会每次都重新分配大小。(比普通的数组具有更高的时间复杂度和空间复杂度) 2.定义、初始化 几种定义核初始化的方法: vector < int > vec ; //声明一个int型向量 vector < int > vec1 ( 4 , 1 )

学习论文《Neural Snowball for Few-Shot Relation Learning》笔记

狂风中的少年 提交于 2020-01-31 22:22:41
笔记在一定程度上参考了AI科技评论的 用于少次关系学习的神经网络雪球机制 1.文章的创新点 关系增长的关系抽取 关系抽取(RelationExtraction)是自然语言处理当中的一个重要研究课题,其探究如何从文本中抽取结构化的关系事实。例如,从句子“比尔盖茨是微软的创始人”中,我们可以抽取出(比尔盖茨,创始人,微软)这样一个关系三元组,并用于知识图谱补全等下游任务中。 与关系抽取相关的工作有很多,但他们大多针对预定义的关系类型,即给定一个人为定义好的关系集合,在抽取时仅考虑集合内的关系类型。然而, 我们面临着开放式的关系增长,随着新领域、新知识的出现,关系类型也在不断增多。因此,我们需要能够应对关系增长的关系抽取模型。 知识度量 :通过RSN来在已有关系上的大规模数据上训练距离度量,迁移到新的关系类型上,利用 新关系的少量数据作为启动种子,从大规模的无监督数据中挖掘有用信息,挖掘越多的有用信息 ,我们就能得到越好的关系抽取模型。 2. Related Work 2.1 Three different kinds of data 目前的研究当中,主要有以下几种关系抽取的场景,他们所针对的关系类型和利用的数据都有所不同: 有监督的关系抽取(Supervised Relation Extraction):其针对预定义的关系集合,使用 大规模的监督数据 。 半监督的关系抽取(Semi

Ceph 之RGW Cache

别说谁变了你拦得住时间么 提交于 2020-01-31 17:23:28
Overview 缓存是为达到系统快速响应的一项关键技术,Ceph 作为一个复杂的分布式存储系统,有多种、多级缓存存在。缓存按照位置分为: 客户端缓存 服务端缓存 网络中缓存 按照部署方式分为: 单体缓存 缓存集群 分布式缓存 而Rados 网关缓存,也即RGW Cache 按照位置:作为Ceph client 可以归为客户端缓存,作为上层应用的服务端可以归为服务端缓存。而按照部署方式则为分布式缓存,因为Ceph 集群通常会存在多个RGW 实例,分布式缓存会涉及到缓存同步等问题。 RGW Cache 将对象存储的相关元数据存储在内部缓存中,用于提升性能。 RGW Cache 执行路径 前面已经提到,目前Ceph 中涉及RGW Cache 的配置参数有三个: rgw_cache_enabled: RGW Cache 开关,默认为true,即开启。 rgw_cache_expiry_interval: 缓存数据的过期时间,默认900秒。 rgw_cache_lru_size: RGW 缓存entries的最大数量,当缓存满后会根据LRU算法做缓存entries替换,entries size默认为10000。读请求较多的场景,适当大的参数配置可以带来更好的性能。 查看RGW cache 命中率: [root@umstor14 build]# bin/ceph daemon out

Python的迭代器与生成器

依然范特西╮ 提交于 2020-01-31 04:42:37
#Python的迭代器与生成器 ##迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式。 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 迭代器有两个基本的方法:iter() 和 next()。 字符串,列表或元组对象都可用于创建迭代器: >> > list = [ 1 , 2 , 3 , 4 ] >> > it = iter ( list ) # 创建迭代器对象 >> > print ( next ( it ) ) # 输出迭代器的下一个元素 1 >> > print ( next ( it ) ) 2 >> > 迭代器对象可以使用常规for语句进行遍历: #!/usr/bin/python3 list = [ 1 , 2 , 3 , 4 ] it = iter ( list ) # 创建迭代器对象 for x in it : print ( x , end = " " ) 执行以上程序,输出结果如下: 1 2 3 4 也可以使用 next() 函数: #!/usr/bin/python3 import sys # 引入 sys 模块 list = [ 1 , 2 , 3 , 4 ] it = iter ( list ) # 创建迭代器对象 while True : try :

文本分类(三) | (5) 训练、验证以及测试

回眸只為那壹抹淺笑 提交于 2020-01-30 01:07:41
完整项目 ​​​​​​​ 最后,介绍一下模型的训练、验证以及测试流程。 目录 1. 训练 2. 验证 3. 测试 1. 训练 def train(config, model, train_iter, dev_iter, test_iter): start_time = time.time() model.train()#训练模式 param_optimizer = list(model.named_parameters()) #下列参数 不进行正则化(权重衰减) no_decay = ['bias', 'LayerNorm.bias', 'LayerNorm.weight'] optimizer_grouped_parameters = [ {'params': [p for n, p in param_optimizer if not any(nd in n for nd in no_decay)], 'weight_decay': 0.01}, {'params': [p for n, p in param_optimizer if any(nd in n for nd in no_decay)], 'weight_decay': 0.0}] # optimizer = torch.optim.Adam(model.parameters(), lr=config

C++常见设计模式——观察者模式

时光怂恿深爱的人放手 提交于 2020-01-29 03:28:42
设计模式是对设计原则的具体化。用江湖话说就是武林秘籍,总结出来的一些固定套路,可以帮助有根基的程序员迅速打通任督二脉,从此做什么都特别快。常用的模式及其场景如下 C++常见设计模式——观察者模式 观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都要得到通知并自动更新。 观察者模式从根本上讲必须包含两个角色:观察者和被观察对象。 被观察对象自身应该包含一个容器来存放观察者对象,当被观察者自身发生改变时通知容器内所有的观察者对象自动更新。 观察者对象可以注册到被观察者的中,完成注册后可以检测被观察者的变化,接收被观察者的通知。当然观察者也可以被注销掉,停止对被观察者的监控。 应用场景如下: a、对一个对象状态的更新,需要其他对象同步更新,而且其他对象的数量动态可变。 b、对象仅需要将自己的更新通知给其他对象而不需要知道其他对象的细节。 /* * 关键代码:在目标类中增加一个ArrayList来存放观察者们。 */ # include <iostream> # include <list> # include <memory> ​ using namespace std ; ​ class View ; ​ //被观察者抽象类 数据模型 class DataModel { public : virtual ~ DataModel ( ) { }