给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
springcloud-security-sso
API安全
微服务网关安全
Spring Security中的授权控制
基于Spring Security的控制授权
基于数据库RBAC数据模型的控制权限
权限表达式
表达式 | 说明 |
---|---|
permitAll | 永远返回true |
denyAll | 永远返回false |
anonymous | 当前用户是anonymous时返回true |
rememberMe | 当前用户是rememberMe用户时返回true |
authenticated | 当前用户不是anonymous时返回true |
fullAuthenticated | 当前用户既不是anonymous也不是rememberMe用户时返回true |
hasRole(role) | 用户拥有指定的角色权限时返回true |
hasAnyRole([role1,role2]) | 用户拥有任意一个指定的角色权限时返回true |
hasAuthotity(authority) | 用户拥有指定的权限时返回true |
hasAnyAuthority([authority1,authority2]) | 用户拥有任意一个指定的权限时返回true |
hasIpAddress(‘192.168.1.0/24’) | 请求发送的IP匹配时返回true |
Spring Security中的Token处理
Task5 卷积神经网络基础;leNet;卷积神经网络进阶
卷积神经网络基础
笔记整理
通过观察互相关运算可知,输入数据(这里以二维数组为例)的边缘部分相较于中间部分来说,使用的次数较少,对于一些存储重要信息的边缘数据来说,这无疑是重大的损失,这里可以通过填充来解决这一问题吗??也就是在输入数据的边缘填充0,使得原来的边缘数据中心化???
padding解决不了这个问题,因为padding的内容其实是不包含信息量的0。
这个问题感觉是个不错的思考~但是又感觉很奇怪,平时是遇不到这个问题的。
比如给你一张狗的图片,shape 224224,你换成 222222,你不可能不认识它了。
比如即使你使用77的大卷积核,损失的也仅仅是边缘的3个像素而已。
更何况现在都是33的卷积核,那1个像素是不会包含什么重要信息的。
padding的用途之一就是弥补特征提取时可能造成的边缘信息缺失。我们人在观察图片内容的过程,其实也是就是一个特征提取的过程。人在拍摄照片时,习惯将重要的事物放在图片中央,所以,在用卷积操作提取图片特征时,中间运算次数多,两边少,这是能满足大多数图像重要信息提取的。但是,当你的图片中边缘有重要信息,而卷积核又取得相对较大时,为了更好的保留边缘信息,我们可以考虑使用SAME padding,保持特征图不缩小(具体计算公式见我给出的PPT)。楼上这位朋友解释说“padding解决不了这个问题,因为padding的内容其实是不包含信息量的0。”,这不太对。因为他忽略了虽然padding的0不含信息,但是原始图片(或是FM)的边缘是包含信息的啊,而且你认为边缘信息对你当前要处理的任务来说是重要的,所以,你在要SAME padding处理,以尽可能多提取边缘信息啊。
Task4 机器翻译及相关技术;注意力机制与Seq2seq模型;Transformer
机器翻译及相关技术
笔记整理
数据预处理
- 读取数据,处理数据中的编码问题,并将无效的字符串删除
- 分词,分词的目的就是将字符串转换成单词组成的列表。目前有很多现成的分词工具可以直接使用,也可以直接按照空格进行分词(不推荐,因为分词不是很准确)
- 建立词典,将单词组成的列表编程单词id组成的列表,这里会得到如下几样东西
- 去重后词典,及其中单词对应的索引列表
- 还可以得到给定索引找到其对应的单词的列表,以及给定单词得到对应索引的字典。
- 原始语料所有词对应的词典索引的列表
- 对数据进行padding操作。
- 制作数据生成器,但是需要注意的是对于翻译任务的数据格式,机器翻译的输入是一段文本序列,输出也是一段文本序列。
Task3 过拟合、欠拟合及其解决方案;梯度消失、梯度爆炸;循环神经网络进阶
Task2 文本预处理;语言模型;循环神经网络基础
文本预处理
文本预处理步骤:
1.读取文本 2.分词 3.构建字典 建立索引
Vocab字典构建步骤:
1.统计词频,去重筛选掉低频词
2.根据需求添加特殊的token
3.建立字典,将每个token建立映射到唯一的索引
4.建立索引到token的映射
建立词典:
词典的主要作用是将每一个词映射到一个唯一的索引号,主要构建了一个idx_to_token列表来存储所有的词,一个token_to_idx来存储所有词的索引。
在实现的的流程上是:
对语料进行分词,生成一个token列表,里面包含了语料的分词结果
对分好的词统计词频,然后根据词频来构建词典(统计好的词频完成了去重的操作,同时也保留了词的频率,方便后续的操作)
其中有一些名词的作用是视频里提出来的
pad的作用是在采用批量样本训练时,对于长度不同的样本(句子),对于短的样本采用pad进行填充,使得每个样本的长度是一致的
bos( begin of sentence)和eos(end of sentence)是用来表示一句话的开始和结尾
unk(unknow)的作用是,处理遇到从未出现在预料库的词时都统一认为是unknow ,在代码中还可以将一些频率特别低的词也归为这一类
- 建立字典,设置阈值
- 去重筛选词,特殊需求token
- count_corpus统计词频,得到counter
- 增删,利用空列表
- pad:二维矩阵长度不一,短句子补token利用pad
- bos:开始token
- eos:结束token
- unk:未登录词当作unk
- 词到索引号