test

假装优雅地实现定时缓存装饰器

本秂侑毒 提交于 2020-02-21 03:17:57
参考资料 Python 工匠:使用装饰器的技巧 一日一技:实现有过期时间的LRU缓存 这次的参考资料写在前面,因为写得真不错!开始阅读本篇分享前,建议先阅读参考资料,如果还不能实现定时缓存装饰器,再继续从这里开始读。 实现思路 功能拆分: 缓存上次函数运行的结果一段时间。 把它封装成装饰器。 定时缓存 众所周知,python的 functools 库中有 lru_cache 用于构建缓存,而函数参数就是缓存的 key ,因此,只要把缓存空间设置为 1 ,用时间值作为 key ,即可实现定时执行函数。细节就去看参考资料2吧,我这里就不赘述了。 具体实现如下: """ 定时执行delay_cache """ import time from functools import lru_cache def test_func(): print('running test_func') return time.time() @lru_cache(maxsize=1) def delay_cache(_): return test_func() if __name__ == "__main__": for _ in range(10): print(delay_cache(time.time()//1)) # 1s time.sleep(0.2) 程序输出: running test_func

C#中的多态性

老子叫甜甜 提交于 2020-02-21 01:38:16
连多态都理解错误了,丢脸!!!!!!! 不知道这个和接口中的方法在不同类中的的实现不一样 之区分 首先理解一下什么叫多态。同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。 多态性通过派生类覆写基类中的虚函数型方法来实现。 多态性分为两种,一种是编译时的多态性,一种是运行时的多态性。 编译时的多态性:编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。 运行时的多态性:运行时的多态性就是指直到系统运行时,才根据实际情况决定实现何种操作。C#中运行时的多态性是通过覆写虚成员实现。 下面我们来分别说明一下多态中涉及到的四个概念:重载,覆写,虚方法和抽象方法。 重载和覆写的区别: 重载 类中定义的方法的不同版本 public int Calculate(int x, int y) public double Calculate(double x, double y) 特点(两必须一可以) 方法名必须相同 参数列表必须不相同 返回值类型可以不相同 覆写 子类中为满足自己的需要来重复定义某个方法的不同实现。 通过使用override关键字来实现覆写。 只有虚方法和抽象方法才能被覆写。 要求(三相同) 相同的方法名称 相同的参数列表 相同的返回值类型 例: public class Test {

机器学习-随机森林(Random Forest)

人盡茶涼 提交于 2020-02-21 01:17:44
Section I: Brief Introduction on Random Forest Random forests have gained huge popularity om applications of machine learning during the last decade due to their good classification performance,scalability, and ease of use . Intuitively, a random forest can be considered as an ensemble of decoson trees. The idea behind a random forest is to average multiple trees that individually suffer from high variance, to build a more robust model that has a better generalization performance and is less susceptible to overfitting. The major steps are summarized here: Step 1: Draw a random boostrap sample

机器学习-随机森林(Random Forest)

我是研究僧i 提交于 2020-02-20 22:24:13
Section I: Brief Introduction on Random Forest Random forests have gained huge popularity om applications of machine learning during the last decade due to their good classification performance,scalability, and ease of use . Intuitively, a random forest can be considered as an ensemble of decoson trees. The idea behind a random forest is to average multiple trees that individually suffer from high variance, to build a more robust model that has a better generalization performance and is less susceptible to overfitting. The major steps are summarized here: Step 1: Draw a random boostrap sample

机器学习-随机森林(Random Forest)

会有一股神秘感。 提交于 2020-02-20 19:56:55
Section I: Brief Introduction on Random Forest Random forests have gained huge popularity om applications of machine learning during the last decade due to their good classification performance,scalability, and ease of use . Intuitively, a random forest can be considered as an ensemble of decoson trees. The idea behind a random forest is to average multiple trees that individually suffer from high variance, to build a more robust model that has a better generalization performance and is less susceptible to overfitting. The major steps are summarized here: Step 1: Draw a random boostrap sample

php函数preg_replace()

荒凉一梦 提交于 2020-02-20 17:08:09
preg_replace 函数执行一个正则表达式的搜索和替换。 语法 mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) 搜索 subject 中匹配 pattern 的部分, 以 replacement 进行替换。 参数说明: $pattern: 要搜索的模式,可以是字符串或一个字符串数组。 $replacement: 用于替换的字符串或字符串数组。 $subject: 要搜索替换的目标字符串或字符串数组。 $limit: 可选,对于每个模式用于每个 subject 字符串的最大可替换次数。 默认是-1(无限制)。 $count: 可选,为替换执行的次数。 PHP 的 preg_replace()函数存在一个安全问题:php5.5以上废除/e. /e 修正符使 preg_replace() 将 replacement 参数当作 PHP 代码(在适当的逆向引用替换完之后)。提示:要确保 replacement 构成一个合法的 PHP 代码字符串,否则 PHP 会在报告在包含 preg_replace() 的行中出现语法解析错误。 示例: preg_replace("/test/e",$_GET["h"],

linux入门系列12--磁盘管理之分区、格式化与挂载

半腔热情 提交于 2020-02-20 12:47:56
前面系列文章讲解了VI编辑器、常用命令、防火墙及网络服务管理,本篇将讲解磁盘管理相关知识。 本文将会介绍大量的Linux命令,其中有一部分在“linux入门系列5--新手必会的linux命令”一文中已经介绍,遗忘了或没学习过的请自行查看。 磁盘管理主要涉及磁盘扩容以及磁盘配额管理,当服务器磁盘空间达到一定程度(个人认为一般使用量占到总容量的70-80%)就需要考虑新加磁盘实现扩容,一般操作步骤为分区、格式化、挂载、验证及使用。而磁盘配额主要是针对用户设置其最大的磁盘空间使用量,防止当个用户占用磁盘过多的情况。下面将在虚拟机中模拟磁盘的这些管理操作,生产环境中操作命令和方式都是一样的。 在演示具体操作之前先了解一下相关的理论知识。 一、磁盘管理相关理论知识 1.1 文件存储结构与文件定位 Linux系统中一切都是文件,既然是文件那就涉及文件的存储以及文件的定位查找。 1.1.1 文件存储结构 在windows系统中,我们存储文件一般是将磁盘划分为几个不同的盘符(比如C、D、E、F等等),然后将资料存储在不同的盘符下。查找的时候也是根据对应的盘符找到相应的存储文件夹,进而找到对应的文件。 但是在Linux下,情况有些不一样,一切文件都是从根目录开始的,并不像windows一样存在盘符的说法,并且Linux下的目录名称是严格区分大小写的。 文件在Linux中存储是有一定规律的

apache DBUtils 使用例子demo

落花浮王杯 提交于 2020-02-20 10:53:34
转自:http://blog.csdn.net/earbao/article/details/44901061 apache DBUtils是java编程中的数据库操作实用工具,小巧简单实用, 1.对于数据表的读操作,他可以把结果转换成List,Array,Set等java集合,便于程序员操作; 2.对于数据表的写操作,也变得很简单(只需写sql语句) 3.可以使用数据源,使用JNDI, 数据库连接池 等技术来优化性能--重用已经构建好的数据库连接对象,而不像php,asp那样,费时费力的不断重复的构建和析构这样的对象。 DBUtils包括3个包: org.apache.commons.dbutils org.apache.commons.dbutils.handlers org.apache.commons.dbutils.wrappers DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码。 org.apache.commons.dbutils DbUtils 关闭链接等操作 QueryRunner 进行查询的操作 org.apache.commons.dbutils.handlers ArrayHandler :将ResultSet中第一行的数据转化成 对象数组 ArrayListHandler将ResultSet中所有的数据转化成List

VMware Workstation5.5 安装教程

吃可爱长大的小学妹 提交于 2020-02-20 10:11:41
链接地址:http://bbs.3qit.com/thread-46533-1-1.html Fedora 7 Test 4 (6.93),为了尝鲜,一个晚上用 VMware Workstation5.5安装了此版本的Fdeora。 REDHAT2007-04-26日刚刚发布  Fedora 7 Test 4 (6.93) BT种子下载 f7-test4-i386.torrent (220.2 KB) 下载次数: 2748 2007-5-1 12:35 下来我们一块看看一步一步安装Fedora 7吧 1、启动VMware并新建 虚拟机 ,打开虚拟机向导窗口 下载 (42.44 KB) 2007-5-1 10:26 2、下一步后在客户机操作 系统 中选择Linux,版本中选择Red Hat Linux 下载 (42.23 KB) 2007-5-1 10:26 3、点下一步,填入虚拟机名称和位置。注意所选的位置所在的盘一定要有足够大的空间,不然下来无法安装完成Linux 下载 (39.1 KB) 2007-5-1 10:26 4、下一步,在网络类型中选择使用桥接网络就行。 下载 (45.21 KB) 2007-5-1 10:26 5、下一步,在磁盘容量填写所要划分给虚拟机操作系统的虚拟 硬盘 大小。默认是8G,但我觉得如果以后还要安装其它 软件 ,最好还是再设置大点,我设置的是12G

task03过拟合、欠拟合

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-20 08:53:20
过拟合、欠拟合及其解决方案 过拟合、欠拟合的概念 权重衰减 丢弃法 模型选择、过拟合和欠拟合 训练误差和泛化误差 在解释上述现象之前,我们需要区分训练误差(training error)和泛化误差(generalization error)。通俗来讲,前者指模型在训练数据集上表现出的误差,后者指模型在任意一个测试数据样本上表现出的误差的期望,并常常通过测试数据集上的误差来近似。计算训练误差和泛化误差可以使用之前介绍过的损失函数,例如线性回归用到的平方损失函数和softmax回归用到的交叉熵损失函数。 机器学习模型应关注降低泛化误差。 模型选择 验证数据集 从严格意义上讲,测试集只能在所有超参数和模型参数选定后使用一次。不可以使用测试数据选择模型,如调参。由于无法从训练误差估计泛化误差,因此也不应只依赖训练数据选择模型。鉴于此,我们可以预留一部分在训练数据集和测试数据集以外的数据来进行模型选择。这部分数据被称为验证数据集,简称验证集(validation set)。例如,我们可以从给定的训练集中随机选取一小部分作为验证集,而将剩余部分作为真正的训练集。 K折交叉验证 由于验证数据集不参与模型训练,当训练数据不够用时,预留大量的验证数据显得太奢侈。一种改善的方法是K折交叉验证(K-fold cross-validation)。在K折交叉验证中