记录六:C++中对字符串数组vector<string>去重

对于字符串数组vector<string>去重,有以下三种方法(准确的是两种吧): (一)先排序、后去重 采用sort函数 (头文件#include <algorithm>) —— 这时候vector容器元素是从小到大排序好的采用unique函数(头文件#include <algorithm>) —— 将容器中重复的元素放到vector的尾部,返回指向第一个重复元素的迭代器采用vector自带的erase函数(头文件#include <vector>) —— 删除vector中的一段元素 具体代码如下↓ void DeleteDuplicated(vector<string> &name) { sort(name.begin(), name.end()); name.erase(unique(name.begin(), name.end()), name.end()); } (二)利用set、unordered_set容器 因为这两个容器的关键字是唯一的因此以元素是否能在unordered_set容器中插入成功作为判断依据如果插入成功 就将该值赋给迭代器指向的下一个值 并将判断迭代器下移一位 具体代码如下↓ void remove(vector<string> &str) { vector<string>::iterator itr = str.begin(); unordered_set<string> s; for (auto curr = str.begin(); curr != str.end(); ++curr) { if (s.insert(*curr).second)//判断是否能插入成功 { *itr++ = *curr;//如果成功 就将当前的值赋给到当前迭代器的下一位 } } str.erase(itr, str.end());//循环完一遍后 当前迭代器的位置就是字段唯一值的末尾 } (三)同样利用set、unordered_set容器 如果不是一定要用vector容器来装载字符串 可以考虑直接用set、unordered_set容器来存储! 目前从时间复杂度的角度上来说,第二种方法应该是最快的,其时间复杂度为O(n)。 会继续补充,找到效率最快、最高的方法.... (如果有请补充 哪里说错了也请指出!

SAP用户信息查询的几张表

(a)如何快速查出某个Role下所有的Tcode?(除了SUIM,能否直接select什么表)? (b)如何快速查出某个Role下所有的UserID?(除了SUIM,能否直接select什么表)? (c)如何快速查出某个UserID具有的Role?(除了SUIM,能否直接select什么表)? (d)如何快速查出某个UserID具有的Tcode?(除了SUIM,能否直接select什么表)? 答: TABLES: agr_users, agr_define, agr_hier, ust04. 关于用户信息表,用到的是: usr21 adrp adcp 再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

深度学习:pyTorch实战计算机视觉

pyTorch深度学习框架:基于动态图计算的特性,基于静态图计算深度学习框架相比,更多的优势,速度快,强大的包可调用。 一、人工智能 1、人工智能:强人工智能: 智能 弱人工智能:人工 2、人工智能的三起两落: 1956年提出人工智能概念 1980 专家系统:指解决特定领域问题的能力已达到该领域的专家能力水平,其核心运用专家多年积累的丰富经验和专业知识,不断模拟专家解决问题的思维,处理只有专家才能解决的问题1990 机器学习 深度学习 机器学习=统计学习方法(统计学原理) 3、1957 单层计算单元神经网络模型==感知机 perceptron 分类问题,二分类线性模型。 +1 -1 分离超平面 优点:容易处理线性可分,不能处理异或问题,也就是不能处理非线性问题。 4、多层神经网络模型,输入层 隐藏层 输出层 5、计算机视觉:机器能否对视觉信息进行收集,处理和分析,是机器智能一个重要的体现用途,让机器拥有人类一样的视觉能力也是计算机视觉诞生的初衷。 计算机视觉分为信息的收集,信息的分析,信息的处理。 6、图片分类,图像目标识别,图像语义分割(对识别的类别使用同一种像素进行标识打上标签) 7、自动驾驶 8、图像风格迁移Neural style 二、相关数学知识 1、矩阵运算 标量:独立存在的数 向量:一维:一列按顺序排列的元素 矩阵matrix:二维数组结构 张量:数组的维度超过了二维,高维数组 矩阵的加法 减法 乘法。 2、导数求导 一阶导数的几何意义:斜率 复合链式求导法则 三、深度学习网络基础 监督学习 无监督学习半监督学习弱监督学习回归问题(连续)聚类 分类问题(离散) 过拟合增加数据dropout采用正则化方法(L0.L1L2) 欠拟合增加特征项构造复杂多项式减少正则化参数 1、向后传播 2、损失函数 均方误差函数 mse均方根误差函数 RMSE平均绝对误差函数 3、优化算法 相关参数的初始化,参数以何种形式调优,取适合的学习率 梯度: 偏导,向后传播中对各个参数求得的偏导数 一阶 优化函数 GD 梯度下降 gradient descent 全局梯度下降 训练的样本的总数,学习率,容易出现局部最优和抖动 J(θ) 是总体SGD 随机梯度下降stochastic gradient descent J(θ) 是选取随机一部分数据集包含随机个样本数量 ,因为是随机容易发生局部最优解BGD 批量梯度下降batch gradient descent J(θ) 是一个batch Momentum adgrad Adamadaptive moment estimation 通过让每个参数获得自适应的学习率,大损失大学习率 小损失小学习率,避免出现局部最优解,优点收敛快,学习效果好,对学习速率消失,收敛过慢,高方差的参数更新等损失值波动,adam有很好的解决方案。 4、激活函数

操作系统(一)引导程序

操作系统(一)引导程序 序原理操作系统的启动过程FAT12文件系统BIOS内存分布代码编译BIOS中断 代码分析 序 在自学操作系统的过程中,试图自己实现。参考了一些文献(《30天自制操作系统》、《现代操作系统》等),决定将零散的信息进行一下整理,梳理一下思路。并一点点的开始实现自己的操作系统。我将已经实现的部分上传到了我的GitHub,代码中不足之处还请路过的大神们指点。(希望我能写完) 原理 操作系统的启动过程 具体的信息在计算机是如何启动的——阮一峰博客的文章中记录的非常详细,在这里仅简单列举一下相关内容 BIOS硬件自检加载引导程序 BIOS首先读取存储设备的第一个扇区(引导扇区),如果这个扇区的最后两个字节是0x55和0xAA则视作可以启动。将引导扇区的引导程序加载至系统内存的0x7c00位置,执行。引导程序进行初始化等一系列处理。 载入系统内核,BIOS引退 FAT12文件系统 在《30天自制操作系统》中,作者使用了一个自制的软件以生成img镜像,实际上就是作者实现的一个简单的FAT12文件系统生成的程序。有关于FAT12文件系统的具体内容可以参考FAT12文件系统。 在这里需要了解的包括: 由上图可知,在第一个扇区即引导扇区中存储着软盘的相关内容,根目录区(存放着文件名称、大小、修改日期等)开始于第19个扇区(0x2600)。根目录区每个条目的大小为32个字节,所以根目录区的长度为:BPB_RootEntCnt*32(字节)。这样就可以确定出数据区的开始扇区。按默认情况计算开始的地址为(0x8200)。 上图为引导扇区中的参数。 按照以上FAT12的原理,我也实现了一个“极简版的FAT12文件生成程序”,内有彩(bug)蛋,详见GitHub ExtUtils/createImg。 BIOS内存分布 在开机时,系统会进入实模式,这个时候系统只用1M空间可以使用。具体分配情况如下: 0x00000—0x003ff中断向量表。0x00400—0x004ff BIOS数据区。0x00500—0x9ffff 自由内存区。0xA0000—0xbffff作为显存使用。0xc0000—0xc7fff 显卡BIOS。0xc8000—0xcbfff ide控制器BIOS使用。0xf0000—0xfffff 系统bios使用。 在开机时,会自动将引导程序加载至0x7c00处。 代码编译 按照常规使用汇编+C作为编写语言。采用nasm和gcc对代码进行编译。首先将代码编译为二进制文件,再写入“软盘”中。 编译指令为: nasm -f bin filename.s -o filename.bin BIOS中断 BIOS中断内容较多,可以查阅BIOS中断大全。 代码分析 以下代码已上传至GitHub。 CYLS EQU 10 ORG 0x7C00 ;起始地址 JMP start ;短转移 DB 0x90 ;无意义 DB "MY OS " ; BS_OEMName DW 512 ; BPB_BytesPerSec DB 1 ; BPB_SecPerClus DW 1 ; BPB_ResvdSecCnt DB 2 ; BPB_NumFATs DW 224 ; BPB_RootEntCnt DW 2880 ; BPB_TotSec16 DB 0xF0 ; BPB_Media DW 9 ; BPB_FATSz16 DW 18 ; BPB_SecPerTrk DW 2 ; BPB_NumHeads DD 0 ; BPB_HiddSec DD 2880 ; BPB_TotSec32 DB 0,0,0x29 ; BS_DrvNum DD 0xffffffff ; BS_VolID DB "

Python中numpy模块功能整理(上):矩阵的创建、初始化、元素类型、数据提取与形状管理

一、模块准备: import numpy as np 二、创建数组(矩阵): 1、通过手动输入的方式创建: #创建一维数组 x=np.array([1,2,3,4,5]) #创建二维数组 y=np.array([[1,2],[22,2],[11,8]]) 结果: 2、从文件中读取: 以创建的test.txt为例: 读取代码: #以逗号为元素分割符号识别矩阵 test = np.loadtxt('E:/test.txt',delimiter=',') 结果: 二、数组(矩阵)的初始化 1、创建元素数值为0的数组(矩阵):zeros函数 #创建3X3的0矩阵 a=np.zeros((3,3)) 结果: 2、创建数值为1的数组(矩阵):ones函数 #创建2X3的元素为1的矩阵 a=np.ones((2,3)) 结果: 3、创建元素数值为自定义值的数组(矩阵):full函数(可替代zeros与ones函数) #创建3X3元素为0的矩阵 a=np.full((3,3),0) #创建3X5元素为2的矩阵 a=np.full((3,5),2) 4、创建单位矩阵(对角线元素为1其余为0的矩阵):eye函数 #创建3X3的单位矩阵 a=np.eye(3) 结果: 5、创建随机矩阵(各元素数值均为随机数的矩阵): #创建3X4的随机矩阵 a=np.random.random((3,4)) 结果: 6、创建从0开始的一维的连续数组:arange函数 #创建从0开始至3结束(不包括3)的一维数组 np.arange(3) 结果: 三、元素类型: 1、若是元素皆为整数则为整型数组,若元素皆为小数则为浮点型数组,若既有小数又有整数则识别为浮点型数组,代码流程示例如下: 2、同样也可以在数组定义时对元素类型进行声明,如下: 3、元素类型转换: a=np.array(a,dtype=int) 四、提取数组中的数值: # 数组准备: a=np.array([[1,2,3],[4,5,6],[7,8,9]]) 1、推荐方式: a[行值,列值] 2、不推荐方式: a[行值][列值] 示例结果:(两方式相同) 五、矩阵的数据提取进阶: 1、索引符号解释: (1) : 从当前索引开始至结束,如a[1:]是获取索引1到最后的元素 。 (2) - 获取倒数索引的元素,注意从1开始,如a[-2]是获取索引倒数第二个元素。

Qt信号和槽机制:connect函数中的第五个参数QtConnectionType

前言: 众所周知,信号和槽机制是Qt的核心和特有的机制。 通常我们这样用: connect(scrollBar, SIGNAL(valueChanged(int)), label, SLOT(setNum(int))); 常用基础用法如果不太清楚,请自行百度,不是本文讲解的重点。 相信大家或多或少的都听过,这个函数是有第5个参数的,Qt帮助文档原型: [static] QMetaObject::Connection QObject::connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type = Qt::AutoConnection) 建议大家:Qt帮助文档是最好的学习资料,一定要重视。 我们今天要讲解的重点就是第5个参数:连接类型。 Connect的第五个参数:连接Type This enum describes the types of connection that can be used between signals and slots. In particular, it determines whether a particular signal is delivered to a slot immediately or queued for delivery at a later time. 翻译: 这个枚举描述了在信号和槽之间的连接类型。特定的,它决定了是否一个特定信号被输送到槽函数立即,还是在随后排队输送。 Qt::AutoConnection: (Default) If the receiver lives in the thread that emits the signal, Qt::DirectConnection is used.

做了5年左右Java开发,为什么你的技术还是菜?

做了3~5年左右Java开发,你已经积累了不少项目经验,扩宽了技术广度,也许已发力成为团队管理者。到了这个阶段,大家却常有这种感受:感觉自己卡在瓶颈进步缓慢,技术水平很难像早期一样实现大幅突破? 其实大家往往忽略了这一点——提升自己的架构认知。 架构的本质在于面对业务场景给出优雅的解决方案,使得业务能够快速迭代和持续交付,从而达到降本增效的目标。 提升架构认知高度,就像达克效应所描述的一样,要敢于从愚昧之巅跳到绝望之谷,通过爬升开悟之坡,从而达到架构认知的巅峰时刻。 到达巅峰时刻也就掌握了架构背后设计的哲学,面对具体业务场景在架构层面你便能够轻松应对,以无招胜有招。 提升架构认知,要紧抓3个关键点:业务洞察力、技术视野、原创力(执行力)。 1.业务洞察力是技术战略层面的问题,在当下能够做出合理的判断,清楚公司做什么事情收益最大; 2. 技术视野即技术选型能力,是技术战术层面的问题,在清楚做什么事情后,需要进一步解决怎么做的问题,也就是能够给出合理的技术选型方案:是完全基于开源的方案,还是基于开源二次开发的方案,还是完全自研的方案; 3. 原创力(执行力)是技术落地执行层面的问题,一旦技术设计方案确定后,需要能够快速Rush完成。 这3点层层递进,最重要的是先把技术战略问题思考清楚,然后再进一步解决技术战术问题,最后是快速落地执行的问题。 工作5年左右的程序员,在原创力(执行力)层面比较有竞争力,往往欠缺技术视野以及业务洞察力。后面2点更加重要,这2点解决的是架构设计哲学问题,是架构师能够持续拥有竞争力和影响力的立身之道。 举个场景的例子来详细说明:一提到分布式锁问题,大多数人想到的方案是基于Redis的Master-Slave模式来实现。这个实现方案行不行?分布式锁本质是一个CP需求,基于Redis的实现是一个AP需求,乍一看基于Redis的实现是无法满足的。脱离业务场景来谈架构都是耍流氓。 从技术战略的需求层面来看,如果分布式锁在极端情况下获取锁的不一致,社交业务场景能够接受,那么基于Redis的实现是完全可行的。如果业务是交易场景,分布式锁在极端情况下获取锁的不一致性无法接受,那么基于Redis的实现方案是不可行的。在锁强一致性的场景下,需要采取基于CP模型的etcd等方案来实现。 “于一微尘中,悉见诸世界”,一切事物的本质是相通、相同的。 学习架构也是如此,掌握了架构设计背后的哲学,那么一切工程问题也就迎刃而解了。 提升架构认知不是一蹴而就的,它离不开刻意学习和思考。这有一份从架构哲学的层面来剖析的视频分享给大家,是“开课吧”专门邀请前58技术委员会主席,梳理了他多年的架构经验,筹备近1个月最新录制的,相信这份视频能给你带来不一样的启发、收获。 (视频包含如下内容) 智能互联网之总体架构设计 互联网发展三阶段 互联网架构演进之路 单体架构设计与实践 水平分层架构设计与实践 面向服务架构设计与实践 微服务架构设计与实践 服务网格架构设计与实践 千亿级真实案例实践 领取方式:添加小助理微信领视频 因为通过申请后会逐个发资源,小助手精力有限,这次只开放500个名额,需要的抓紧速度尽快添加。 长按添加微信领视频 (视频的价值取决于你领完后的行动 大家千万莫做收藏党)

设置placeholder属性样式的多种写法

设置placeholder属性样式的多种写法 我们经常用到placeholder属性是在input标签里面,placeholder属性主要作用是让输入框有个提示的显示。 那当我们想要改变placeholder属性中文字的大小颜色等样式时,又如何设置呢? 我们先来看一下正常的placeholder属性样式: <input type="text" placeholder="正常的样式"> 效果图: 上面的样式就是placeholder属性默认的样式,如果我们想要突出字体,是不是想把字体颜色改变一下,接下来我们试一下把字体颜色改为红色,先想一下该如何设置呢? 效果图: 代码: 第一种最简单的写法:在谷歌浏览器中使用 <!doctype html> <html> <head> <meta charset="utf-8"> <title>设置placeholder属性样式的多种写法</title> </head> <style> input::placeholder{ color:#DD5A5D; } </style> <body> <input type="text" placeholder="字体颜色为红色"> </body> </html> 第二种写法: 注:因为不同浏览器的兼容性不同,所以在写代码方面也会有所差别。 input::-webkit-input-placeholder{ /* 使用webkit内核的浏览器 */ color: #E0484B; } input:-moz-placeholder{ /* Firefox版本4-18 */ color: #E0484B; } input::-moz-placeholder{ /* Firefox版本19+ */ color: #E0484B; } input:-ms-input-placeholder{ /* IE浏览器 */ color: #E0484B; } 注: 冒号前可写相对应的input或textarea元素等,也可以省略不写,直接冒号开头。 第三种写法:有种写法虽然是复杂了点,但还是要介绍一下。 input[type='text']::-webkit-input-placeholder{ /* 使用webkit内核的浏览器*/ color: #E97F81; } input[type='text']:-moz-placeholder{ /* Firefox版本4-18 */ color: #E0484B; } input[type='text']::-moz-placeholder{ /* Firefox版本19+ */ color: #E0484B; } input[type='text']:-ms-input-placeholder{ /* IE浏览器 */ color: #E0484B; } 注:第三种写法中的text是相对应html中的text,如果是密码框,那么相对应的就是password。

智慧教育开放知识数据集

智慧教育开放知识数据集 作者:王嘉宁 QQ:851019059 Email:lygwjn@126.com,本文原名“中学学科知识点数据集” ⚠️ 所有有关智慧教育的项目已完结停更,不再维护,感谢您的支持 智慧教育知识图谱的研究是近年来十分热门的领域,本人自从开辟智慧教育知识图谱博文账号至今,已收到多个博友的信息,对关于智慧教育知识图谱开放知识数据的渴望十分强烈!本人也持续在的NLP和CV相关领域内研究,并试图能在智慧教育领域有所建树。 本文主要提供开放知识数据集,主要以中学学科、高等教育学科为主。截止2019年10月17日,目前已提供中学数学、数据结构相关NLP数据集。 如果本文及提供的开放数据集对您的研究(应用开发、算法研究、毕设等)有很大帮助,请在引文引用该博文。 一、数据下载 可以直接在下面的链接列表中选择相应的数据集并下载,列表中简要描述了数据集的格式,部分数据正在整理中,实时更新,敬请关注。 由于各个学科的性质及领域知识结构不同,博主个人无法完成所有中小学以及大学专业的相关学科图谱的数据集构造,欢迎广大各领域的博主加入到我们的智慧教育自然语言处理数据集的构建中,延续开源的理念,造福广大程序员!! 序号数据集文件大小句子数量实体数量实体对数量发布日期下载地址1初中数学(NER+RE)501kb6661706112502019.02.19csdn下载2高中数学(NER+RE)506kb22322399112502019.02.19csdn下载3数据结构(RE)15.5mb176919657168262019.11.11csdn下载 *数据结构数据集具体使用说明请下载后见README.txt。 仍需要预训练中文词向量作为模型的微调,我们提供了预训练的三种词向量,分别为word2vec、glove和GWE。 序号词向量类型文件大小下载地址1word2vec45.65MBword2vec中文词向量2glove41.24MBglove中文词向量3GWE56.94MBGWE中文词向量 其中GWE为中文汉字字形特征提取方法构建中文词向量。 二、数据说明 数据来源于网络资源中,包括百度百科、百度文库、维基百科等包含学科知识点的语句。数学、物理学科由于含有公式,因此涉及公式的句子可能语法上读不通,但不妨碍模型的训练学习;文件中包含原始数据集样本(context_entity),实体(entity),训练集(train_data),测试集(test_data)以及实体关系数据库sql文件; (1) 数据集样本(context_entity):每一行代表一个样本,每个样本包含两部分,一部分为原始句子,一部分为该句子的所有实体。实体是按照其在句子中首次出现的位置排序而成。格式例如: 平方根是开方运算的基础,是引入无理数的准备知识。 平方根,开方,无理数 (2)实体(entity):包含该数据集涉及的所有实体,即知识点。实体分为两类,“1”表示该学科切实存在的实体,例如“三角形”、“对数函数”等,标注符号为“KNOW”,“2”表示该学科的定理、定律、法则、求解方法等逻辑概念,例如“点差法”、“正弦定理”等,标注符号为“PRIN”。 (3)训练集和测试集(train_data和test_data):本人通过程序将数据集按照out of beg抽样方法将context_entity划分训练集合测试集,测试集为袋外样本。两个文件格式如图所示: (4)sql数据库文件:本人自行设计web程序手动的为每一个样本的每一个实体进行了关系分类,并存储在sql中。sql包含context、entity、entity_relation和relation四个表,其中entity可忽略。大家可以自己设计sql代码获取关系。 关系种类:本人设计知识点的关系一共12种,如下表: 序号英文符号关系名称说明1rely依赖某个知识点依赖于另一个知识点,两个知识点有必要的前后顺序关系,或者某个知识点的存在必须依赖于另一个知识点的存在2b-rely被依赖某个知识点被依赖于另一个知识点,两个知识点有必要的前后顺序关系3belg属于某个知识点内容从属于另一个知识点范畴内4b-belg包含某个知识点包含另一个知识点内容5syno同义两个知识点名称不同但指代同一个内容6anto反义两个知识点意义相反7simi近义两个知识点有相似的内容8attr属性某个知识点(或名词)是另一个知识点的属性,例如“面积”和“矩形”9b-attr拥有某个知识点拥有的属性是另一个知识点10Appo同位两个知识点在一定范围内具有相同的父节点11other其他两个知识点具备其他关系12none无关两个知识点没有关系 标注规则 在命名实体识别任务中,需要有标注过的数据集,按照绝大多数的科研标注规范,以B表示该实体中首字符的标识,I表示该实体其他字符的标识。若该词只有一个字则仅为B。例如“三角形”标注为“B-KNOW I-KNOW I-KNOW”,而“正弦定理”则标注为“B-PRIN I-PRIN I-PRIN”。 备注:因为该数据为人工标注,因此在数据集中的sql数据库中,relation_id=12代表“无关”,同时两个实体若没有关系记录的默认为“无关”。当然存在两个实体从来没有组成对,但它们有关联的这种的可能,因此这部分数据需要进行实体链接和知识推理步骤完成。 三、数据使用 数据在训练时使用train_data文件,例如使用python代码需要先读取文件,再对每一个样本划分两个部分:原始句子sentence和该句子的所有实体entitys。 (1) 读取数据集: with open('./context_entity','r',encoding="utf-8") as f: for i in f.readlines(): sentence , entitys = i.split(' ') (2) 数据集标注: def getTag(dataset): #根据数据集原始样本及对应所有实体,进行序列标注,生成已标注的样本 #参数:dataset:已读取的数据集 #返回格式: [ ['原始样本','原始样本的序列标注序列'],... ] entity_dict = readEntitys() context_tag = [] for i in dataset: raw_context = i[0] entitys = i[1] tag = ['O']*len(raw_context) entitys.

Activiti入门创建25张表

Activiti支持的数据库 Activiti的运行需要数据库支撑,需要安装activiti数据库,支持如下版本: 创建Maven工程,目录结构如下 创建 mysql 数据库 本教程使用mysql数据库。 创建 mysql数据库 activiti(名字任意): CREATE DATABASE activiti DEFAULT CHARACTER SET utf8; 创建表方式 通过运行 java程序创建表。 创建 java 工程 使用 eclipse 或 idea 创建 maven 的 java 工程。 加入 maven 依赖的坐标(jar 包) 首先需要在 java 工程中加入ProcessEngine 所需要的 jar包, 包括: activiti-engine-7.0.0.beta1.jaractiviti依赖的 jar 包:mybatis、alf4j、log4j 等activiti依赖的 spring包数据库驱动第三方数据连接池 dbcp单元测试 Junit-4.12.jar 我们使用 maven 来实现项目的构建,所以应当导入这些 jar所对应的坐标到pom.xml文件中。 <properties> <slf4j.version>1.6.6</slf4j.version> <log4j.version>1.2.12</log4j.version> </properties> <dependencies> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-engine</artifactId> <version>7.0.0.Beta1</version> </dependency> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring</artifactId> <version>7.0.0.Beta1</version> </dependency> <dependency> <groupId>org.

全国失信被执行人名单爬虫

一、需求说明 通过百度的接口,爬取全国失信被执行人名单。翻页爬虫,获取姓名,身份证等信息。 二、python实现 版本1: # -*- coding:utf-8*- import sys reload(sys) sys.setdefaultencoding('utf-8') import time import requests time1=time.time() import pandas as pd import json ################定义数据结构列表存储数据#################### iname=[] icard=[] ################循环发送请求解析数据####################### for i in range(1,101): print '正在抓取第'+str(i)+"页................................." url="https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?resource_id=6899&query=%E8%80%81%E8%B5%96&pn="+str(i*10)+"&ie=utf-8&oe=utf-8&format=json" head={ "Host": "sp0.baidu.com", "Connection": "keep-alive", "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36", "Accept": "*/*", "Referer": "https://www.baidu.com/s?ie=utf-8&f=3&rsv_bp=1&tn=95943715_hao_pg&wd=%E8%80%81%E8%B5%96&oq=%25E8%2580%2581%25E8%25B5%2596&rsv_pq=ec5e631d0003d8eb&rsv_t=b295wWZB5DEWWt%2FICZvMsf2TZJVPmof2YpTR0MpCszb28dLtEQmdjyBEidZohtPIr%2FBmMrB3&rqlang=cn&rsv_enter=0&prefixsug=%25E8%2580%2581%25E8%25B5%2596&rsp=0&rsv_sug9=es_0_1&rsv_sug=9", "Accept-Encoding": "gzip, deflate, br", "Accept-Language": "zh-CN,zh;q=0.8" } html=requests.get(url,headers=head).content html_json=json.loads(html) html_data=html_json['data'] for each in html_data:

Python读写文件的编码格式-UTF-8, GBK

做一个测试脚本,从文件夹A遍历所有的.txt格式文件,并打开文件逐行读取内容,写入到文件夹B里面。我们看读和写文件格式在是否指定为UTF-8时会发生什么错误。新建6个文件,汉字内容是“你好!”, 英文字符是"Hello" 代码如下 #coding=utf-8 #coding=gbk import os RootDir = R"E:\02_PythonTools\Fold-2\A\\" TargetDir = R"E:\02_PythonTools\Fold-2\B\\" def mkdir(path): path=path.strip() path=path.rstrip("\\") isExists=os.path.exists(path) if not isExists: os.makedirs(path) def del_file(path): ls = os.listdir(path) for i in ls: c_path = os.path.join(path, i) if os.path.isdir(c_path): del_file(c_path) else: os.remove(c_path) def list_all_files(rootdir): _files = [] list = os.listdir(rootdir) for i in range(0,len(list)): path = os.path.join(rootdir,list[i]) if os.path.isdir(path): _files.extend(list_all_files(path)) if os.path.isfile(path): _files.append(path) return _files ''' ********************************************************************************** BEGIN ********************************************************************************** ''' del_file(TargetDir) _fs = list_all_files(RootDir) for i in range (0,len(_fs)): filepath = os.

gitlab使用教程

关于git的介绍,参考《git使用教程》,本文重点介绍如何在windows上使用gitlab上传下载代码 1 git安装 安装方法,参考《Windows10下安装Git》,一路默认安装即可 2 生成ssh key 在桌面上右键Git Bash Here,打开bash终端,输入如下指令 #注意替换为自己注册的邮箱 ssh-keygen -t rsa -C "你注册gitlab的邮箱” 然后一路默认enter,即可生成如下所示的密钥 打开C盘//用户//administrator//.ssh目录下,找到id_rsa.pub文件,打开复制里边的全部内容 如果是在linux上进行操作,则生成ssh key的路径为home路径下的.ssh隐藏文件夹中,比如我的路径为 /home/nvidia/.ssh/id_rsa.pub 3 gitlab添加ssh-key 登录gitlab账号(没有注册的先注册一个),在设置里找到SSH密钥,将刚才复制的内容添加到框里,标题可以自己命名,如图所示 4 新建项目 4.1 创建项目 至此配置完成了,可以在gitlab上新建项目上传了 在项目里选择New project,如图,我们新建一个test的项目 点击create project后,会生成一个空的项目,点击如图中的Clone获得SSH地址,复制下来,下边会用到 4.2 git全局设置 #注意替换成自己的名字和邮箱 git config --global user.name "zong" git config --global user.email "**@jxresearch.com" 4.3 创建新仓库 如果本地没有test工程,可以先克隆一份下来,然后新增或修改工程文件 git clone git@****/test.git cd test touch README.md git add README.md git commit -m "add README" git push -u origin master 4.

springboot连接redis报错的原因

1、连接Redis报错: org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to 192.168.160.128:6379 org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to 192.168.160.128:6379 at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getNativeConnection(LettuceConnectionFactory.java:1092) at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getConnection(LettuceConnectionFactory.java:1065) at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getSharedConnection(LettuceConnectionFactory.java:865) at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getConnection(LettuceConnectionFactory.java:340) at org.springframework.data.redis.cache.DefaultRedisCacheWriter.execute(DefaultRedisCacheWriter.java:238) at org.springframework.data.redis.cache.DefaultRedisCacheWriter.put(DefaultRedisCacheWriter.java:87) at org.springframework.data.redis.cache.RedisCache.put(RedisCache.java:144) at org.springframework.cache.interceptor.AbstractCacheInvoker.doPut(AbstractCacheInvoker.java:87) at org.springframework.cache.interceptor.CacheAspectSupport$CachePutRequest.apply(CacheAspectSupport.java:820) at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:429) at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:345) at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:61) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688) at com.zking.springboot03.service.impl.BookServiceImpl$$EnhancerBySpringCGLIB$$bcd36f92.selectByPrimaryKey(<generated>) at com.zking.springboot03.service.BookServiceTest.selectByPrimaryKey(BookServiceTest.java:52) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.

复合主键的弊端

bad case:在activity_spring_red_packet_sync表的设计过程中,将id,user_id,date三列作为了一个复合主键。 上述情况有哪些不妥的地方? 一、sql语句 CREATE TABLE `activity_spring_red_packet_sync` ( `id` int(11) NOT NULL AUTO_INCREMENT, `phone` char(15) NOT NULL COMMENT '用户手机号', `date` date NOT NULL COMMENT '发送日期', `remain_send_times` int(11) NOT NULL COMMENT '剩余可发红包次数', `remain_get_times` int(11) NOT NULL COMMENT '剩余领取红包次数', `create_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`,`user_id`,`date`), ) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=latin1 COMMENT='春节活动收发红包次数'; 二、问题分析 什么是联合索引,和复合索引有什么区别? 当两个数据表形成的是多对多的关系,那么需要通过两个数据表的主键来组成联合主键,就可以确定每个数据表的其中一条记录了在一个数据表中通过多个字段作为主键来确定一条记录,那么,多个字段组成的就是复合主键 复合主键的弊端? 如果有频繁的业务修改,会导致非聚集索引中的主键信息相应修改,而且容易造成表中记录的物理移动。生成有业务含义的字段需要按照一定的规则生成,不可避免使用varchar等字符串类型,影响插入和查询效率。业务规则发生变化,造成的影响容易扩大。 三、解决问题 需要的是将用户和日期作为一个唯一标识;利用索引 UNIQUE KEY PRIMARY KEY (`id`), UNIQUE KEY `SPRING_RED_PACKET_USER_DATE_IDEX` (`date`,`phone`) USING BTREE

PostGIS实现叠加分析之-Union

1.GIS中的叠加分析包括6个,arcgis中可以看出:包括,Erase,Identity,Intersect,Spatial Join ,Symmetrical difference,Union,Update。具体可参考Arcgis的帮助文档,网上也能找一堆。参考:https://wenku.baidu.com/view/26c40a7ca8956bec0975e37e.html 2.其中,Union的操作并非集合意义上的合并,还包括空间上的,若从集合角度考虑,ArcGIS中的Union包含了两个geometry的交集部分和差异(不同,非交集)部分,既可以理解为两个部分,具体看下图: 3.而在PostGIS中也有操作ST_Union,该Union主要从集合角度考虑,把两个输入的geometry按照集合概念进行合并: 4.这和以上提及到的GIS空间分析或者Arcgis的分析意义不同,从2可以看出,要想实现ArcGIS中的union效果,需要求解两个geometry的两部分内容,分别是相交部分和非相交部分, 相交部分计算: geometry ST_Intersection( geometry geomA , geometry geomB ); 非相交部分计算: geometry ST_SymDifference(geometry geomA, geometry geomB); ST_SymDifference示意: 将以上两个计算的结果组合,就是Arcgis中的union 5.在PostGIS中一些几何要素的关系 ST_SymDifference(A,B) = ST_SymDifference(B,A) ST_SymDifference(A,B) = ST_Union(A,B) - ST_Intersection(A,B) ST_Difference(A,B) = GeometryA - ST_Intersection(A,B) 6.理解了以上的几种关系,就可以推断出其他所有关系 如Erase,Update,Identity等,后续会把这个系列完成。

硬件测试规范

1. 目的 在策略和方法上说明计划、管理测试活动,指导测试进行,以发现产品的错误,验证是否满足系统需求说明书和设计说明书。 2. 适用范围 适用于所有产品的各个测试阶段。读者是所有的测试人员及与测试相关的人员。 3. 定义 编号 名称 定义 1 系统测试 对由单板组合成的模块,子系统或系统进行的测试。 3 平台测试 系统上集成单板软件系统的测试。 6 测试计划 它叙述了对于预定的测试活动将要采取的途径。典型的计划中包括:标识要测试的项目、要完成的测试、测试进度表、人事安排要求、评价准则,以及任何临界的要求的临时计划。 7 测试信号 测试信号是为了实施一次测试而向被测系统提供的输入信号、操作或各种环境设置。测试信号控制硬件测试的执行过程,它是对测试大纲中的每一个测试项目的进一步实例化。 8 测试报告 描述对系统或系统部件进行的测试行为及结果的文件。 1 配置测试 验证系统的配置组合能力。 进入准则 开始测试必须具备的环境和条件。 退出准则 标志测试完成时需要的环境和条件。 性能测试 检查系统是否满足在需求说明书中规定的性能。 可靠性测试 对系统需求说明书中可靠性的要求的测试, 4. 测试工作职责 测试的目标:发现问题、改进问题,总结经验,起到保证设计达到设计要求的作用。研发中心负责测试过程的组织和实施,同时为系统测试提供配合和支持,具体包括实施完成测试计划和测试方法文档、进行测试、完成测试报告,交付硬件,配合系统测试。测试组负责整个硬件平台系统测试过程的组织和实施,实施完成硬件平台系统测试和交付测试,单板软件组配合硬件平台测试工作。具体包括完成硬件平台测试计划和测试方法文档、进行硬件平台系统测试、完成硬件平台测试报告。 5. 测试流程 测试需求在项目启动时给予说明并填写申请《测试申请书》。测试开始时,应该完成测试计划。测试开始后,由于测试情况有变化,可能导致测试计划文档内容的变化。如果文档内容有明显变化,必须在文档中添加变更历史来记载这些变化。 单板测试、硬件系统测试、硬件平台系统测试以及测试的其它阶段,均涉及如下活动: 测试计划 测试设计和开发 测试执行 测试报告 测试评估 测试计划:对测试方法和资源的分配进行计划;测试设计和开发:详细描述各个测试阶段的测试方法和测试用例,搭建测试环境;测试执行:按照测试计划执行测试过程,决定测试项目是通过/失败;测试报告:记录测试结果和测试问题,参见《测试报告》模板;测试评估:按照测试标准评价测试系统。 6. 测试阶段 测试阶段和硬件开发生命周期的对应关系: 开发阶段 单板测试 硬件系统测试 硬件平台系统测试 需求分析 建立测试计划 概要设计 建立测试计划 更新测试计划 详细设计 建立确定测试计划 更新确定测试计划 更新测试计划 实现 设计开发测试设备、执行测试 设计开发测试设备、执行测试

Error inflating class androidx.constraintlayout.widget.ConstraintLayout

今天下载了android studio 3.3.1体验体验新版本来着,没想到新建项目直接来了个这个...... android.view.InflateException: Binary XML file line #2: Error inflating class androidx.constraintlayout.widget.ConstraintLayout 然后google了一下,不单单有这个问题,如果是手动换成androidx的依赖包还会出现报名不对的问题,所以你还要重新导入ConstraintLayout这个控件. 这个问题的解决就是把依赖版本从1.1.2换成1.1.3 原来 implementation 'androidx.constraintlayout:constraintlayout:1.1.2' 换成 implementation 'androidx.constraintlayout:constraintlayout:1.1.3' 很神奇的就好了.然后对比了下这两个版本的源码,就这两个地方的不同 具体的原因还没怎么深究,等以后研究再更新吧!!仅此记录

视觉SLAM总结——视觉SLAM十四讲笔记整理

视觉SLAM总结——视觉SLAM十四讲笔记整理 说明基础知识点1. 特征提取、特征匹配(1)Harris(2)SIFT(3)SUFT(4)ORB(5)特征匹配 2. 2D-2D:对极约束、基础矩阵、本质矩阵、单应矩阵3. 3D-2D:PnP(1)直接线性变换方法(2)P3P方法(3)Bundle Adjustment方法 4. 3D-3D:ICP(1)SVD方法(2)非线性优化方法 5. 直接法和光流法(1)光流法(2)直接法 6. Bundle Adjustment回环检测 相关问题1. SIFT和SUFT的区别2. 相似变换、仿射变换、射影变换的区别3. Homography、Essential和Fundamental Matrix的区别4. 视差与深度的关系5. 描述PnP算法6. 闭环检测常用方法7. 给一个二值图,求最大连通域8. 梯度下降法、牛顿法、高斯-牛顿法的区别9. 推导一下卡尔曼滤波、描述下例子滤波10. 如何求解 A x = b Ax=b Ax=b的问题11. 什么是极限约束12. 单目视觉SLAM中尺寸漂移是怎么产生的10. 解释SLAM中的绑架问题11. 描述特征点法和直接法的优缺点12. EKF和BA的区别13. 边缘检测算子有哪些?14. 简单实现cv::Mat()15. 10个相机同时看到100个路标点,问BA优化的雅克比矩阵多少维16. 介绍经典的视觉SLAM框架 说明 这篇博客是我对《视觉SLAM十四讲》相关基础知识点的一个整理,没有详细的推导过程,仅仅相当于一个思维导图,同时在网上搜罗了一些相关的问题进行的补充总结,本人水平有限,如果文中有误,还请大家指出。 基础知识点 1. 特征提取、特征匹配 这是整个SLAM系统最开始的部分,先进行特征提取,然后进行特征匹配,通过匹配的特征点才求取的相关变换矩阵,这里容易搞混的概念是特征提取,特征提取是包括特征点和特征描述子,以ORB为例,ORB是由FAST特征点和BRIEF特征描述子构成。而我们通常所说的Harris角点通常仅仅指特征点,仅仅拥有Harris角点是无法进行特征匹配的,还需要通过向量对Harris角点进行特征描述(特征描述子),两帧之间才能进行特征的匹配。关于特征子的总结可以参看我的这篇总结博客 视觉SLAM总结——视觉特征子综述(总结得非常详细) (1)Harris Harris角点:如下图所示,通过一个小的滑动窗口在邻域检测角点在任意方向上移动窗口,若窗口内的灰度值都有剧烈的变化,则窗口的中心就是角点。转化为数学描述就是自相关矩阵两个特征值大小。 Harris特征描述子:Harris 角点的描述子通常是由周围图像像素块的灰度值,以及用于比较的归一化互相关矩阵构成的。图像的像素块由以该像素点为中心的周围矩形部分图像构成 优点:计算简单;提取的点特征均匀且合理;稳定,稳定Harris算子对图像旋转、亮度变化、噪声影响和视点变换不敏感。 缺点:对尺度很敏感,不具有尺度不变性;提取的角点精度是像素级的;需要设计角点匹配算法 (2)SIFT SIFT特征点:利用高斯金字塔和DOG函数进行特征点提取。高斯金字塔的当前层图像是对其前一层图像先进行高斯低通滤波,然后做隔行和隔列的降采样(去除偶数行与偶数列)而生成的。DoG (Difference of Gaussian)是高斯函数的差分,具体到图像处理来讲,就是将同一幅图像经过两个不同高斯滤波得到两幅滤波图像,将这两幅图像相减,得到DoG图。DOG图上的邻域梯度方向直方图峰值即特征点的主方向。 SIFT特征描述子:以特征点为中心取窗口,通过高斯加权增强特征点附近像素梯度方向信息的贡献,即在4 × 4的小块上计算梯度方向直方图( 取8个方向),计算梯度方向累加值,形成种子点,构成4× 4 × 8= 128维特征向量。然后进行统计。 优点:SIFT特征对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性。 (3)SUFT SUFT是对SIFT的改进,他们在思路上是一致的,只是采用的方法不同而已

解决win10 cmd下运行python弹出windows应用商店问题

今日使用win10下python,环境变量已配置,然而在cmd下或powershell下运行python,均弹出应用商店,不能正常工作。 查看path发现第一条为”%USERPROFILE%\AppData\Local\Microsoft\WindowsApps“,这个应该就是罪魁祸首了,直接删掉,当然也备份了,如果有需要再替换回来。 再运行python,一切OK,不知道是不是就我遇到这个问题了。。。。。。

卷积中计算代价

本文介绍深度学习卷积操作中计算代价(the problem of computational cost)的衡量方法 在模型压缩以及嵌入式开发中,由于硬件条件的限制,导致网络的计算代价与参数量受到约束。那么计算代价如何衡量? 举例:如下图,输入为28*28*192,卷积核大小为5*5*192,卷积核个数为32个,输出为28*28*32的特征。 我们可以这样理解,对于output共计28*28*32个特征,每个特征需要经过卷积中乘法操作:5*5*192次(即卷积核大小),加法操作同乘法操作数目相同。故经过卷积后(仅考虑乘法时)计算代价为(5*5*192)*(28*28*32)。

(转)数据中台概念基础一

1.https://cloud.tencent.com/developer/news/314902 大数据的下一站:数据中台 大数据需要沉淀为产品 虽然,在基础科研方面,中国跟美国还有一些距离,但在大数据应用市场上,中国的应用和需求是比较强劲的,因为中国企业更关心应用和落地,解决应用才能给客户创造价值。 过去,所有大数据企业都在做项目,并没有更多资源把能力沉淀成产品和平台。比如很多可共用的数据服务没有服务化、产品化,很多产品总是做重复的动作。 今年,数据中台成为大数据行业的热门概念,它最先是从阿里引出的,是指通过数据技术,对海量数据进行采集、计算、存储、加工,同时统一标准和口径。数据中台把数据统一之后,会形成标准数据,再进行存储,形成大数据资产层,进而为客户提供高效服务。这些服务跟企业的业务有较强的关联性,是这个企业独有的且能复用的,它是企业业务和数据的沉淀,其不仅能降低重复建设、减少烟囱式协作的成本,也是差异化竞争优势所在。 2. https://www.jianshu.com/p/f8a7c33709b3 数据中台到底是什么?介绍了运用商的实践 3. http://baijiahao.baidu.com/s?id=1600774956858573658&wfr=spider&for=pc 阿里大数据中台onedata 4. https://blog.csdn.net/jR2qkuHiR0G/article/details/78706005 DT时代,企业打造数据中台的三大原则 5。http://www.dataguru.cn/article-12910-1.html 滴滴的实践 https://blog.csdn.net/dkjkls/article/details/79184890 https://blog.csdn.net/u013628152/article/details/82463194 https://blog.csdn.net/W2_Pan0125/article/details/79409651

棋盘问题——简单深搜

在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 Input 输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n 当为-1 -1时表示输入结束。 随后的n行描述了棋盘的形状:每行有n个字符,其中 # 表示棋盘区域, . 表示空白区域(数据保证不出现多余的空白行或者空白列)。 Output 对于每一组数据,给出一行输出,输出摆放的方案数目C (数据保证C<2^31)。 Sample Input 2 1 #. .# 4 4 ...# ..#. .#.. #... -1 -1 Sample Output 2 1 /*经典深搜题,这题就只需要简单剪枝也能过,思路其实挺好想,就是从第一行开始遍历,然后判断一下每一列是否满足条件,就是逐行深搜,废话不不多说看代码!!*/ #include <iostream> using namespace std; int visited[10]; char a[10][10]; int cnt ,num,n,k; void dfs(int r) { if(num == k) //如果棋子数达到k,那么计数器加一,并返回。 { cnt++; return; } if(r >= n) return;//判断边界。 for(int j = 0;j < n; j++) { if(!

JavaScript高手之路:隔行异色效果

上一章节我们使用原生JSS实现了全选、不选、反选效果,这一这章节我们来实现隔行异色效果,隔行异色的意思是某表格中奇数行和奇数行的颜色相同,偶数行和偶数行的颜色要相同,奇数行和偶数行的颜色不同,奇偶相间达到隔行异色的效果。 隔行异色的效果图如上,奇数行背景颜色为antiquewhite,偶数行背景颜色为aqua奇偶相间,当鼠标移动到某一行的时候,该行背景颜色变红,鼠标移除时恢复原来的颜色。 页面的html代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>隔行异色</title> <style> div { padding: 20px; margin: 5px; border: solid 1px #000; } </style> </head> <body> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> </body> </html> 页面的最初轮廓如此,存在11个div,每个div定义了对应的样式,控制div具有表格行的效果,但是这时候的每一行背景颜色还只是单调的透明色,接下来我们编写代码实现奇偶相间异色效果。 首先需要定义奇数行和偶数行以及当前选中行的背景颜色。 .odd { background-color: aqua; } .even { background-color: antiquewhite; } .active { background-color: red; } 在css中定义了三个class的样式,每个class的样式只定义了背景颜色,现在我们来看看js代码怎么实现的。 var BgChange = function () { this.aDiv = document.getElementsByTagName("div"); this.init = function() { for(var i = 0; i < this.

js动态生成select,并根据后台数据初始化

HTML <select id="cunUser" class="form-control" onclick="getData()" onchange="alert(this.options[this.options.selectedIndex].value)"> </select> JS function getData(){ $.ajax({ type: "GET/POST", url: "url", data: {}, dataType: "json", success: function(data){ var html = '<option value="">请选择</option>'; for(var i=0;i<data.length;i++){ html +='<option value="'+data[i].id+'">'+data[i].name+'</option>'; } $('#cunUser').append(html); $('#cunUser').val(id); } }); }

vue.js - axios Get、Post方法传参给 .net core webapi。

一:axios中是 Get请求: 1:在vue项目中通过params属性携带数据: let _self = this; axios({ method:'get', url:'http://localhost:5000/api/StuInFors/GetEFAsync/', params:{pagesize:10,pageindex:2} }).then(function(resp){ //document.write(JSON.stringify(resp.data)); console.log(resp.status); _self.apidatas = resp.data; }); 2:然后.net core webapi 中通过Query取出数据: [HttpGet] public async Task<List<InforEF>> GetEFAsync()//int pagesize,int pageindex) { int pagesize = 10;//页大小。 int pageindex = 1;//第几页。 if (Request.Query.ContainsKey("pagesize")) { pagesize = Convert.ToInt32(Request.Query["pagesize"]); pageindex = Convert.ToInt32(Request.Query["pageindex"]); } //Skip(5),忽略前面的 5 个 //int pagesize = 10;//页大小。 //int pageindex = 1;//第几页。 //所以Skip(pagesize * (pageindex - 1)),Take(pagesize); List<InforEF> infors = await _context.Infortb.OrderBy(infor => infor.

正交投影矩阵-原理及推导

来自:https://blog.csdn.net/tengweitw/article/details/41174555 二维投影 上图表示的是,向量b在向量a上的投影。显然有例如以下表达式: 当中,P为投影矩阵,由P的表达式能够看出,它具有例如以下性质: 三维投影 三维投影,就是将一个向量投影到一个平面上。同上面一样,如果是将b向量投影到平面上的p向量,则有表达式: e是垂直与平面的向量。 因为p向量在平面上。则p向量能够由该平面的2个线性无关向量(正如。在xy平面的不论什么向量都能够由x轴,y轴表示)表示: 因为e垂直平面,则e向量垂直与平面中的随意向量。则有: 将上式化简求得x: 又由于p=Ax,Pb=p,则得到投影矩阵为: 由P的表达式能够看出,它具有例如以下性质: 上面的投影矩阵是通式。当投影在一维情况时,数值的逆是它的倒数,A即为直线上的随意一个向量a,投影矩阵为: 实例说明: 如上图,如果我们要将向量b投影到水平面上。其投影为p,a1,a2为水平面的两个线性无关向量,它们的參数分别为: 那么A=[a1 a2]即: 由上面我们求得的通式,可得投影矩阵P: 知道投影矩阵P后。我们能够得到b在水平面上的投影p为: 显然,p与我们图中所看到的的结果同样。这里我们是以三维情况进行举例的,更高维情况。我们无法用图像来描写叙述,可是通式也是成立的。

微信小程序:动画(Animation)

简单总结一下微信动画的实现及执行步骤。官方文档是这样说的:①创建一个动画实例 animation。②调用实例的方法来描述动画。③最后通过动画实例的 export 方法导出动画数据传递给组件的 animation 属性 图解实现的三步骤: 前两步是定义一个动画并设置都要干什么,然后把这个设置好的“规则”扔给界面上的某个元素,让它按照这个规则执行。 当然如果有多个元素的animation="{{ani}}",也都会执行这个动画规则。 实例代码 index.wxml <view class="container"> <view class="usermotto" animation="{{ani}}"> <text class="user-motto">{{motto}}</text> </view> <button bindtap='start'>动画</button> </view> index.wxss .usermotto { margin-top: 100px; border: solid; } index.js Page({ data: { motto: 'Hello World', }, start:function(){ var animation = wx.createAnimation({ duration: 4000, timingFunction: 'ease', delay: 1000 }); animation.opacity(0.2).translate(100, -100).step() this.setData({ ani: animation.export() }) } }) 实际效果: 简单介绍一下例子中的几个参数和方法(详见官方文档·动画): duration: 动画持续多少毫秒 timingFunction: “运动”的方式,例子中的 'ease’代表动画以低速开始,然后加快,在结束前变慢 delay: 多久后动画开始运行 opacity(0.2): 慢慢变透明

JAVA WEB项目引用JS,JS中文出现乱码解决方法,JSON传递中文字符,request中取值出现中文乱码的问题

JAVA WEB项目引用JS,JS中文出现乱码解决方法, 1、page指令中设置contentType、pageEncoding属性 <%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%> 使用后没有解决问题,contentType属性用于设置相应正文的MIME类型和JSP页面中文本内容的字符集编码; pageEncoding属性用于指定JSP页面中文本内容的字符集编码格式,如果指定了pageEncoding属性,则contentType中的charset就不再具有指定JSP页面中文本内容的字符集编码的作用了。 2、在引用js时设置编码方式: <script src="../../resources/js/base.js" type="text/javascript" charset="UTF-8"> </script> 返现我的程序依然不起作用; 3、发现了一个万能办法: ①将js文件中的内容全部复制,新建一个txt文件,粘贴进去 ②然后选择另存为:将编码选择为utf-8 ③将保存类型选择为所有文件 ④文件名选择为js文件,然后将原来的js文件覆盖掉 问题就解决了!!! 4、右键引入的js文件,查看properties,查看Resource最下面的Text file ecoding 值,注意要和页面上的编码保持一致,查看JSP页面编码格式同上,编码统一就基本解决中文乱码的问题了 JSON传递中文字符,request中取值出现中文乱码的问题 因为request请求都是ISO-8859-1,而jsp页面是采用UTF-8编码,所以当传递的参数有中文时,页面会出现乱码, 将取到的数据,通过String的构造函数使用指定的编码类型,重新构造一个String对象解决乱码问题 例: 将 String prooductname = request.getParameter("productname"); 更改为 String prooductname = new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");

什么是线程阻塞?为什么会出现线程阻塞?

什么是线程阻塞? 在某一时刻某一个线程在运行一段代码的时候,这时候另一个线程也需要运行,但是在运行过程中的那个线程执行完成之前,另一个线程是无法获取到CPU执行权的(调用sleep方法是进入到睡眠暂停状态,但是CPU执行权并没有交出去,而调用wait方法则是将CPU执行权交给另一个线程),这个时候就会造成线程阻塞。 为什么会出现线程阻塞? 1.睡眠状态:当一个线程执行代码的时候调用了sleep方法后,线程处于睡眠状态,需要设置一个睡眠时间,此时有其他线程需要执行时就会造成线程阻塞,而且sleep方法被调用之后,线程不会释放锁对象,也就是说锁还在该线程手里,CPU执行权还在自己手里,等睡眠时间一过,该线程就会进入就绪状态,典型的“占着茅坑不拉屎”; 2.等待状态:当一个线程正在运行时,调用了wait方法,此时该线程需要交出CPU执行权,也就是将锁释放出去,交给另一个线程,该线程进入等待状态,但与睡眠状态不一样的是,进入等待状态的线程不需要设置睡眠时间,但是需要执行notify方法或者notifyall方法来对其唤醒,自己是不会主动醒来的,等被唤醒之后,该线程也会进入就绪状态,但是进入仅需状态的该线程手里是没有执行权的,也就是没有锁,而睡眠状态的线程一旦苏醒,进入就绪状态时是自己还拿着锁的。等待状态的线程苏醒后,就是典型的“物是人非,大权旁落“; 3.礼让状态:当一个线程正在运行时,调用了yield方法之后,该线程会将执行权礼让给同等级的线程或者比它高一级的线程优先执行,此时该线程有可能只执行了一部分而此时把执行权礼让给了其他线程,这个时候也会进入阻塞状态,但是该线程会随时可能又被分配到执行权,这就很”中国化的线程“了,比较讲究谦让; 4.自闭状态:当一个线程正在运行时,调用了一个join方法,此时该线程会进入阻塞状态,另一个线程会运行,直到运行结束后,原线程才会进入就绪状态。这个比较像是”走后门“,本来该先把你的事情解决完了再解决后边的人的事情,但是这时候有走后门的人,那就会停止给你解决,而优先把走后门的人事情解决了; 5.suspend() 和 resume() :这两个方法是配套使用的,suspend() 是让线程进入阻塞状态,它的解药就是resume(),没有resume()它自己是不会恢复的,由于这种比较容易出现死锁现象,所以jdk1.5之后就已经被废除了,这对就是相爱相杀的一对。

如何打开计算机中隐藏文件夹

开始 - 控制面板 上面菜单栏的 工具 选项 打开其中的 文件夹选项 中的 查看 将其改为 不显示 即可 当然这不常用,找到之后可以再还原回去。

【解决】华为H22M-3刀片服务器降低系统版本,需要加载阵列驱动.

昨天公司MES系统异常无法登入,开发要求更换低版本系统,因为在2012R2系统上经常出现问题,但是在安装过程中发现需要加载阵列驱动. 系统安装方式:USB光驱安装,2008R2光盘一张. 官方下载3108阵列驱动:3108_win2k8r2sp1_x86_64_6.711.06.00.img(如果是别的型号服务器,需要用网线接服务器背面MGMT口登入,地址官方文档可以查询,然后查看阵列卡型号) 官方提供虚拟控制台:kvm_client_windows.zip 安装方法:首先登入虚拟控制台,然后用控制台自带软驱加载阵列驱动,BISS中调设置USB光驱启动按照正常流程安装系统程序,在磁盘分区界面加载软驱阵列驱动即可.

Leetcode 525.连续数组

连续数组 给定一个二进制数组, 找到含有相同数量的 0 和 1 的最长连续子数组。 示例 1: 输入: [0,1] 输出: 2 说明: [0, 1] 是具有相同数量0和1的最长连续子数组。 示例 2: 输入: [0,1,0] 输出: 2 说明: [0, 1] (或 [1, 0]) 是具有相同数量0和1的最长连续子数组。 注意: 给定的二进制数组的长度不会超过50000。 题解: 首先对原数组做处理,将所有的0都变为-1;这样一来 "含有相同数量的 0 和 1 的连续数组" 就等价为 "元素值总和为0的连续数组"。 其后,从头扫一遍数组,并记录当前的前缀和的值,将该值和对应的下标存入到一个标记数组或哈希表中。若该前缀和的值已出现过(即标记数组或哈希中已存在),则说明标记中的下标到当前扫描的下标的这段数组的总和值是为0的。 打个例子: [ -1,-1,-1,1,-1,1,-1,1,-1,-1,-1,-1 ] 在扫描完到第四个元素时,前缀和为-2 且未记录过,则将值-2和下标3记录起来。当扫描到 [ -1,-1,-1,1,-1,-1,1,1,-1,-1,-1,-1 ] , 此时得到的前缀和为-2,且知道标记中有记录过-2,则说明此刻下标到之前记录的下标的这段数组总和为0 [ -1,-1,-1,1,-1,-1,1,1,-1,-1,-1,-1 ] 。 1 import java.util.HashMap; 2 3 class Solution { 4 public int findMaxLength(int[] nums) { 5 int ans = 0,sum = 0; 6 for(int i=0;i<nums.

Linux 上报 No space left on device错误

机器上跑的java程序出现问题,报错信息为No space left on device 1.排查问题 通过df -h 命令查看磁盘的使用情况,发现 /tmp目录使用率100%,进入/tmp目录后发现目录下并没有文件存在,于是乎很纳闷,那为什么使用率会是100%呢?因为是公司环境,也并不是本人所起任务,最后询问同事得知,是他起了一个测试任务在不断的启动进程,日志文件会即时删掉,由于这些不断启动的进程导致磁盘占满。 2.解决问题 将那个任务kill掉之后,一切恢复正常

从服务器自身提供的 DNS 域名解析故障

connection timed out; trying next origin ;; connection timed out; no servers could be reached 修改bind服务器named.conf配置即可,将 options { listen-on port 53 { 127.0.0.1; }; listen-on-v6 port 53 { ::1; }; 修改为 options { listen-on port 53 { 192.168.1.8; }; ####本机ip listen-on-v6 port 53 { ::1; }; 再将dns地址参数修改成 192.168.1.8 [root@node01 slaves]# cat /etc/resolv.conf nameserver 192.168.1.8 测试: [root@node01 slaves]# nslookup www.linuxprobe.com Server: 192.168.1.8 Address: 192.168.1.8#53 Name: www.linuxprobe.com Address: 192.168.1.8 192.168.1.8 Server: 192.

RocketMQ4.3.X笔记(4):消费者 Consumer

文章目录 消费者概述消费者类型消费者组与订阅模式MessageListener消费状态 Consume Status线程池大小 Thread NumberConsumeFromWhere消息重复 Duplication PushConsumerDefaultMQPushConsumer 的简单使用DefaultMQPushConsumer 的处理流程DefaultMQPushConsumer 流量控制 PullConsumer 简单使用Consumer 的启动、关闭流程存储队列位置信息 offsetOffset 概述Offset 的使用 参考 消费者概述 消费者类型 在RocketMQ中根据使用者对读取操作的控制情况,消费者可分为两种类型。 一个是 DefaultMQPushConsumer ,由系统控制读取操作,收到消息后自动调用传入的处理方法来处理;另一个是 DefaultMQPullConsumer ,读取操作中的大部分功能由使用者自主控制。 消费者组与订阅模式 ConsumerGroup: Consumer 的 GroupName 用于把多个Consumer 组织到一起,提高并发处理能力,GroupName 需要和消息模式( MessageModel )配合使用。MessageModel:RocketMQ 支持两种消息模式: Clustering(默认) 和 BroadcastingConsumerGroup 与 MessageModel 配合: 在Clustering 模式下,同一个 ConsumerGroup ( GroupName 相同) 里的每个Consumer 只消费所订阅消息的一部分内容, 同一个 ConsumerGroup 里所有的Consumer 消费的内容合起来才是所订阅Topic 内容的整体,从而达到负载均衡的目的在Broadcasting 模式下,同一个ConsumerGroup 里的每个Consumer 都能消费到所订阅Topic 的全部消息,也就是一个消息会被多次分发,被多个Consumer 消费 MessageListener MessageListenerConcurrently 使用者将并发地使用消息。为了获得良好的性能,建议使用这种方法。不建议抛出异常,可以返回ConsumeConcurrentlyStatus.RECONSUME_LATER状态 MessageListenerOrderly 使用者将锁定每个MessageQueue,以确保按顺序逐个使用它。这将导致性能损失,但是当关心消息的顺序时,这是非常有用的。不建议抛出异常,可以返回ConsumeOrderlyStatus.SUSPEND_CURRENT_QUEUE_A_MOMENT代替 消费状态 Consume Status MessageListenerConcurrently ConsumeConcurrentlyStatus.

Mac 删除不必要的 Adobe PS AI 组件

Mac 删除不必要的 Adobe 组件 安装完 Adobe Photoshop Illustrator 之后那个 Cloud 每次启动都有,挺烦的,照下面的方式可以删除不必要的组件 一:通过以下路径找到有关 Adobe 的文件并且删除 这些启动项大部分是跟Adobe的自动更新有关。 【注意!】 找到相关的删除,不是删除文件夹内的所有文件! ~/Library/LaunchAgents /Library/LaunchAgents /Library/LaunchDaemons /System/Library/LaunchAgents /System/Library/LaunchDaemons 二:进入系统偏好设置,在“扩展”中关闭 Core Sync 和 Core Sync Helper。 三:前往 /Applications/Utilities/Adobe Creative Cloud ,删除 CCLibrary、CCXProcess 以及CoreSync文件夹。 如果不能删除,在【Finder】 -【应用程序】-【实用工具】-【活动监视器】里强制退出 CCLibrary.app、CCXProcess.app以及CoreSync.app进程之后再删除。 四:重启。 脚本 #!/bin/sh echo "--------------------START-----------------------" echo 与 Adobe 相关的文件(如果只显示路径,就说明已经删除了,如果没有,需要手动删除) echo "【~/Library/LaunchAgents/】" ls -al ~/Library/LaunchAgents/ | grep adobe echo "【/Library/LaunchAgents/】" ls -al /Library/LaunchAgents/ | grep adobe echo "【/Library/LaunchDaemons/】" ls -al /Library/LaunchDaemons/ | grep adobe echo "

关于@HotSpotIntrinsicCandidate注解

@HotSpotIntrinsicCandidate 昨天在看源码的时候看到了很多这个注解,应该是Java 9引入的新特性,作用如下: JDK的源码中,被@HotSpotIntrinsicCandidate标注的方法,在HotSpot中都有一套高效的实现,该高效实现基于CPU指令,运行时,HotSpot维护的高效实现会替代JDK的源码实现,从而获得更高的效率。 @Override @HotSpotIntrinsicCandidate public StringBuilder append(char c) { super.append(c); return this; }

1.发送打印任务后提示"打印到文件"或者"另存为"窗口怎么办?

故障现象 发送打印任务后电脑上弹出“打印到文件”或者“另存为”窗口。如图 1 打印到文件所示: 图片 : 打印到文件 故障原因 使用了错误的打印机驱动程序。 端口设置错误。 在 Word 或者 Excel 等 Office 软件中,选择了“打印到文件”选项。 解决方法 请按照以下步骤操作: 步骤一:设置默认打印机 如果在同一台电脑上配置了多台打印机,请确保您需要使用的打印机是默认打印机。 根据不同的操作系统做以下操作: Windows 2000 操作系统 依次点击“开始” → “设置” → “打印机”。 Windows XP 操作系统 依次点击“开始”→“打印机和传真”。 Windows Vista 操作系统 依次点击“开始()”→“控制面板”,在“控制面板”窗口中,点击“打印机”选项。 Windows 7 操作系统 依次点击“开始()”→“设备和打印机”。 在“打印机和传真”窗口中,右键点击“HP Deskjet D1300 series”图标,选择“设为默认打印机”菜单项,将打印机设为默认打印机。如图 2 设为默认打印机所示: 图片 : 设为默认打印机 注意: 本文以 HP Deskjet D1368 喷墨打印机在 Windows XP 操作系统中的操作方法为例,其他型号打印机和操作系统的操作方法可作参考。 步骤二:设置打印端口 根据不同的操作系统做以下操作: Windows 2000 操作系统 依次点击“开始” → “设置” → “打印机”。

Skimage图像处理教程3)曝光度调整

这里所谓的曝光度的,这里所谓的曝光度,实际上是借用了英文单词exposure的翻译,因为在这一讲中,我们要涉及到python中skimage.exposure中涉及到的函数啦。这一讲主要包括图像的直方图,直方图均衡化,自适应直方图均衡化,颜色阈值调整,gamma校正等等内容。 # 返回直方图, 直方图分成几份,返回两个数组分别是该组别的像素个数和组别 skimage.exposure.histogram(image, nbins=256) # 直方图均衡化,mask和原图大小一致bool类型只有0或1 skimage.exposure.equalize_hist(image, nbins=256, mask=None) # 自适应直方图均衡化 skimage.exposure.equalize_adapthist (image, kernel_size=None, clip_limit=0.01, nbins=256) # 重置强度区间 # image会自动计算图像的最大值和最小值 # 给出数据结构如np.uint8则会把数据归到uint8的区间之内 # 或者给出最大最小值[min, max] skimage.exposure.rescale_intensity(image, in_range='image', out_range='dtype') # 返回图像的累积分布和每个分块的中点 skimage.exposure.cumulative_distribution(image, nbins=256) # 对图像进行gamma调整 # 输入输出都是0到1之间,新像素值Out = In^gamma skimage.exposure.adjust_gamma(image, gamma=1, gain=1) # 对图像进行sigmoid纠正,这个操作可能是用在特定领域感觉不太常见 # 公式是Out = 1/(1 + exp*(gain*(cutoff - In))) # inv如果是True则返回负的sigmoid纠正结果 # 输入输出是0到1之间 skimage.exposure.adjust_sigmoid(image, cutoff=0.5, gain=10, inv=False) # 对图像进行log调整 # inv为false时Out = gain*log(1 + In) # inv为true时Out = gain*(2^In - 1) skimage.

深入浅出EF之ModelFirst和DBFirst

在上篇博文中,小编主要简单的介绍了一下EF的一些基础知识,其中,小编蜻蜓点水的提了一下ModelFirst和DBFirst,ModelFirst先设计实体,然后根据模型生成数据库,DBFirst根据数据库生成模型,两个方向都是可以了,两个方向可以相互更新,比如新添加了实体,可以根据模型生成数据库,如果在数据库里面新添加了字段,我们可以从数据库更新模型。在介绍ModelFirst和DBFirst之前,我们先来解决两个问题,EF与linq to sql的关系以及为什么使用linq to sql和EF。 EF与linq to sql的关系 linq to sql 是微软ORM思想的一个具体化,EF也是它的一个具体化,那么,这两个产品有什么区别呢?Linq to Sql是ORM思想实现的一个轻量级的框架,EF是一个重量级框架;Linq to Sql和EF的一个重要的区别就是,Linq to Sql只能针对于SQL Server数据库,而EF可以针对于很多的数据库(Oracle,SQL Server等),也就是说EF是跨数据库的,不要小看这一点,在实际的开发中,非常的实用,举个简单的小例子,还记我们敲的VB.NET版本的机房收费系统么,其中涉及到了数据访问层,如果出于某种原因,我们换了数据库,那么,我们就需要重新编写数据访问层,如果我们在创机房收费系统这个项目的时候,使用了linq to sql,更换了数据库linq to sql框架就需要重新进行大量的改动,如果使用了EF框架,那么我们只需要改动其中的配置文件就可以了,不需要修改程序中的代码。 为什么使用linq to sql和EF 这个问题,也关乎我们的D层,还记得敲机房收费系统的时候,我们会抽出来一个sqlhelper类,这个类实现了对数据库的增删改查,然后,我们的再创建相应的D层类,这些类方法的功能,其实都差不多,唯一不同的就是sql,从这里我们可以看到,我们的D层的问题,那就是,我们重复性的书写一些不必要的类或者方法,解决这个方法就需要慢慢的抽象,抽象出共有的东西,像:DataTable装换为实体集,操作数据库的几类方法(注意其参数),然后将其一整合,这个大致就是我们所属的ORM思想实现的雏形了,当然,上面所说的那些东西,Linq to Sql或EF这些框架已经帮助我们实现了,我们只需要使用它们提供的方法就行了,从这里我们也可以看到,如果我们使用这些框架,我们程序员在编程的时候,几乎不需要管理D层的东西,只需要关注业务的实现就可以了。 接下来,小编就来简单的介绍一下ModelFirst,ModelFirst先设计实体,然后根据模型生成数据库,如下图所示, 我们可以再图中空白处右击添加实体,还可以新增标量属性,以及添加关联。接着,我们可以根据上面的实体生成数据库,如下图所示: 生成的代码如下所示: <span style="font-size:18px;"><span style="font-size:18px;">-- ---------------------------------------------------- Entity Designer DDL Script for SQL Server 2005, 2008, 2012 and Azure-- ---------------------------------------------------- Date Created: 01/28/2015 15:43:19-- Generated from EDMX file: C:\Users\Flower\Desktop\EFDemo\ModelFirstDemo\DataModel.edmx-- --------------------------------------------------SET QUOTED_IDENTIFIER OFF;GOUSE [ModelFirstDemoDb2];GOIF SCHEMA_ID(N'dbo') IS NULL EXECUTE(N'CREATE SCHEMA [dbo]');GO-- ---------------------------------------------------- Dropping existing FOREIGN KEY constraints-- --------------------------------------------------IF OBJECT_ID(N'[dbo].

力扣——体育馆的人流量

X 市建了一个新的体育馆,每日人流量信息被记录在这三列信息中:序号(id)、日期 (date)、 人流量 (people)。 请编写一个查询语句,找出高峰期时段,要求连续三天及以上,并且每天人流量均不少于100。 例如,表 stadium: +------+------------+-----------+ | id | date | people | +------+------------+-----------+ | 1 | 2017-01-01 | 10 | | 2 | 2017-01-02 | 109 | | 3 | 2017-01-03 | 150 | | 4 | 2017-01-04 | 99 | | 5 | 2017-01-05 | 145 | | 6 | 2017-01-06 | 1455 | | 7 | 2017-01-07 | 199 | | 8 | 2017-01-08 | 188 | +------+------------+-----------+ 对于上面的示例数据,输出为:

jdk以及jvm源码查找

目前市场上主要有两个jdk版本,一个是oracle的jdk版本,另一个为openjdk的jdk版本,oracle的jdk源码目前找不到,大家可以找openjdk的源码,这两个jdk源码绝大多数是相同的。编译出的jvm等处理逻辑也是一样的。 openjdk的官网为:http://openjdk.java.net/ 源码查找如下图所示: 点击Mercurial进入下图: 点击jdk8u进入下图: 进入jdk8u后就可以看到hotspot以及jdk的源码目录了,再分别点击这两个目录,再点击右侧的zip就可以下载源码了,具体如下:

关于Python3中相对路径的表示

在Python3中,相对路径的表示方式与Python2不同:(注意点的个数) “ / ”:表示根目录,在windows系统下表示某个盘的根目录,如“D:\”; “ ./ ”:表示当前目录;(表示当前目录时,也可以去掉“./”,直接写文件名或者下级目录) “ ../ ”:表示上级目录。 测试: 在PyCharm中创建一个Python项目,项目中创建一个test文件夹,在test文件夹中创建一个test.py文件,在其中输入以下代码: if __name__ == '__main__': f1 = open('文件1.txt', 'w', encoding='utf-8') f1.write('当前目录') f1.close() f2 = open('/文件2.txt', 'w', encoding='utf-8') f2.write('根目录') f2.close() f3 = open('./文件3.txt', 'w', encoding='utf-8') f3.write('当前目录') f3.close() f4 = open('../文件4.txt', 'w', encoding='utf-8') f4.write('上级目录') f4.close() 运行结果:

不是内部或外部命令,也不是可运行的程序 或批处理文件(环境变量问题)

在cmd小窗口敲命令的时候,显示不是内部或外部命令,也不是可运行的程序 或批处理文件。说明这个命令的环境变量没有配置好; 比如输入ipconfig,显示不是内部或外部命令,也不是可运行的程序 或批处理文件,则需要配置环境变量,按win+R,在弹出的窗口输入sysdm.cpl。 进入高级选项,选择环境变量,选择Path(如果有这个环境变量就直接打开,没有就自己新建一个Path变量),在第一行输入:%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\ 保存更改。 再次打开cmd,输入ipconfig就ok了。 ----------------------------------------------------------- 安装miniconda的时候需要配置环境变量(user用户变量) 变量名:Path: 变量值:E:\APP_address\anaconda;E:\APP_address\anaconda\Scripts;E:\APP_address\anaconda\Library\bin; 这是cmd的变量路径,如果不使用cmd,miniconda安装后系统有自带的anaconda Prompt也可,直接在菜单中找; ------------------------- 安装nodejs的环境变量配置(user用户变量) 变量名:NODE_PATH 变量值:E:\Program Files\nodejs\node_modules(根据自己node_modules的路径来) 变量名:Path 变量值:E:\Program Files\nodejs\ (根据自己nodejs安装路径来)

深度学习中局部最优问题

局部最优的问题(The problem of local optima) 初学深度学习,总是担心优化算法会困在极差的局部最优。本文介绍如何正确看待局部最优以及深度学习中的优化问题。 如上图,平面的高度就是损失函数。在图中似乎各处都分布着局部最优。梯度下降法或者某个算法可能困在一个局部最优中,而不会抵达全局最优。但是,问题的关键在于,低维特征(图示两维)让我们对局部最优产生误解。 事实上,如果你要创建一个神经网络,通常梯度为零的点并不是这个图中的局部最优点,实际上成本函数的零梯度点,通常是鞍点。 一个具有高维度空间的函数,如果梯度为0,那么在每个方向,它可能是凸函数,也可能是凹函数。如果你在2万维空间中,那么想要得到局部最优,所有的2万个方向都需要是这样,但发生的机率也许很小(2**(-20000)),也许是,你更有可能遇到有些方向的曲线会这样向上弯曲,另一些方向曲线向下弯,而不是所有的都向上弯曲,因此在高维度空间,你更可能碰到鞍点。 对于鞍点来讲,平稳段会减缓学习,平稳段是一块区域,其中导数长时间接近于0,如果你在此处,梯度会从曲面从从上向下下降,因为梯度等于或接近0,曲面很平坦,你得花上很长时间慢慢抵达平稳段的这个点,我们可以沿着这段长坡走,直到这里,然后走出平稳段。 本文的要点是: 你不太可能困在极差的局部最优中,条件是你在训练较大的神经网络,存在大量参数,并且成本函数被定义在较高的维度空间。平稳段是一个问题,这样使得学习十分缓慢,这也是像Momentum或是RMSprop,Adam这样的算法,能够加速学习算法的地方。在这些情况下,更成熟的优化算法,如Adam算法,能够加快速度,让你尽早往下走出平稳段。

Lumen Carbon 日期及时间处理包

用到过的方法: 获取当前Y-m-d H:i:s Carbon::now()->toDateTimeString() 把 Y-m-d H:i:s 转 Y-m-d Carbon::parse('Y-m-d H:i:s')->toDateString(); 把 时间戳 转 Y-m-d H:i:s Carbon::parse(time())->toDateTimeString() 获取当前时间戳 Carbon::now()->timestamp 取两个Y-m-d H:i:s时间的最小值 $dt1 = Carbon::parse($dt1); $dt2 = Carbon::parse($dt2); return $dt1->min($dt2); 取两个Y-m-d H:i:s时间的最大值 $dt1 = Carbon::parse($date1); $dt2 = Carbon::parse($date2); return $dt1->max($dt2); 返回两个Y-m-d H:i:s时间的天数差 $dt1 = Carbon::parse($date1); $dt2 = Carbon::parse($date2); return $dt1->diffInDays($dt2); 判断一个Y-m-d H:i:s时间,是否在另外两个Y-m-d H:i:s时间之间 $dt1 = Carbon::parse($date1); $dt2 = Carbon::parse($date2); return Carbon::parse($date)->between($dt1, $dt2); 获取时间格式: //上个月第一天 Carbon::now()->subMonth()->firstOfMonth() //上个月最后一天 Carbon::now()->subMonth()->lastOfMonth() //这个月第一天 Carbon::now()->firstOfMonth() 时间戳格式

select into ...from... 提示 Undeclared variable解决方案

今天在使用 SELECT INTO FROM 创建mysql数据表的时候,运行相关 sql 语句的时候却一直返回 [Err] 1327 - Undeclared variable: …… 这种错误,实在不解,经过查询关资料才知道,原来 mysql 数据库是不支持 SELECT INTO FROM 这种语句的,但是经过研究是可以通过另外一种变通的方法解决这个问题的,下面就来说说解决这个错误的办法吧! 进过搜索相关资料以及实验结果证实,可以使用 Create table Table2 (Select * from Table1); 这种语句代替 SELECT vale1, value2, value3 into Table2 from Table1; 例如: create table newusers(SELECT username,password,sex,age,role from users where username like 'z%'); 也可以关联两个表得出一个查询结果,然后将结果插入到一个新创建的表。 参考文章:https://blog.csdn.net/wangluo605/article/details/82289209 https://www.cnblogs.com/netsa/archive/2011/10/26/2225625.html 转载于:https://www.cnblogs.com/java-jun-world2099/articles/10345562.html

毕业论文LaTeX模板

文章目录 多文件编译定制论文样式设置标题字体及标题样式Arial字体的使用设置标题 设置页边距,页眉,页脚定义中英文摘要环境定义中文摘要环境定义英文摘要环境 目录的生成及相关问题处理编译警告的处理设置参考文献格式设置参考文献引用格式设置参考文献显示格式将文献年份放在期刊卷数和页码之前中文期刊作者超过三个人,在第三作者后加等文献不同属性用"."分隔文献年份和期刊卷数以“,”隔开去掉文献末尾的"."去掉期刊名称的强调字体 LaTeX论文源码 多文件编译 毕业论文篇幅较长,单一文件的编译方式不太方便,可按照文档的逻辑层次,把整个文档分成多个 TeX \TeX TE​X源文件 , LaTeX \LaTeX LATE​X提供的\include{filename}命令可用来导入另一个文件的内容作为一个章节,文件名不用带.tex扩展名。\include{filename}命令会在命令之前和之后使用\clearpage或\cleardoublepage另起新页,并将文件内容贴到\include{filename}命令所在位置。 定制论文样式 设置标题字体及标题样式 Arial字体的使用 先定义新字体Arial:\newfontfamily\sectionef{Arial}在需要使用Arial字体的地方输入命令:\sectionef 设置标题 英文标题字体采用 A r i a l Arial Arial,中文标题采用黑体一级标题居中,小三号二级标题左对齐,四号 \usepackage{titlesec} \newfontfamily\sectionef{Arial} % 设置Arial字体 % \newCJKfontfamily\sectioncf{STXihei} % 设置黑体 \titleformat{\section}{\center\zihao{-3}\heiti\sectionef}{ % 设置一级标题居中,中文字体为黑体,英文字体为Arial,字号为小三号 第\,\thesection\,章}{1em}{} \titleformat*{\subsection}{\zihao{4}\heiti\sectionef} % 设置二级标题中文字体为黑体,英文字体为Arial字号为四号 设置页边距,页眉,页脚 页边距左右均为3.2 cm,上下均为3.8 cm页眉居中显示当前章标题页脚居中显示当前页码封面不显示页码,中英文摘要和目录页码采用大写罗马格式,正文及参考文献采用小写阿拉伯格式 由于titlesec宏包会改变页眉章标题格式,所以需要重新定义页眉章标题格式,如果没有引入titlesec宏包,可采用\fancyhead[C]{\leftmark}完成页眉居中显示当前章标题。 \usepackage{geometry} \geometry{left=3.2cm,right=3.2cm,top=3.8cm,bottom=3.8cm} % 设置页边距 \usepackage{fancyhdr} % 设置页眉 \pagestyle{fancy} \fancyhf{} \cfoot{\thepage} % 设置页码 \renewcommand{\sectionmark}[1]{\markboth{第\thesection 章\quad % 设置页眉内容为章标题 \ #1}{}} 页码格式的设置可在不同源文件中加入页码控制语句,具体参见 LaTeX \LaTeX LATE​X论文源码一节。