test

内存对齐(转载)

依然范特西╮ 提交于 2020-03-03 19:10:56
目录 内存对齐指令 内存对齐的三条规则 另外还有两个需要注意的点: 下面开始举栗子说明 字节对齐的原因: C/C++中内存对齐问题的一些理解,转载于zhihu 内存管理是C/C++编程非常重要的一部分内容,熟悉C/C++中一些常见数据结构和数据类型的内存分布情况,可以很大程度上降低了coding过程中内存泄漏和越界等比较严重的内存问题,下面主要讨论一下结构体(类中同样存在内存对齐,内存对齐会复杂一些,涉及到虚表等问题,后面介绍类的时候会提到)中的内存对齐问题。 如有侵权,请联系删除,如有错误,欢迎大家指正,谢谢 内存对齐指令 一般来说,内存对齐过程对coding者来说是透明的,是由编译器控制完成的 如对内存对齐有明确要求,可用#pragma pack(n)指定,以n和结构体中最长数据成员长度中较小者为有效值 如未明确指定时,以结构体中最长的数据成员长度作为内存对齐的有效值 以下如没有特殊说明,均视为情况3(未明确指定)计算 内存对齐的三条规则 数据成员对齐规则,结构体(struct)(或联合(union))的数据成员,第一个数据成员存放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小或者成员的子成员(只要该成员有子成员,比如数组、结构体等)大小的整数倍开始(如:int 在 64bit 目标平台下占用 4Byte,则要从4的整数倍地址开始存储) 结构体作为成员

C++虚函数与非虚函数的区别。

不打扰是莪最后的温柔 提交于 2020-03-03 16:59:29
#include <iostream> #include <string> /* * Animal 与Dog之间没有虚函数 * Animal Fish有一个eating的虚函数 * 通过"基类的指针" 访问 子类(们)的成员函数。这叫动态多态。是用虚函数的技术完成的。这也叫动态绑定。] * 当我们使用基类的引用(或指针)调用一个虚函数时将发生动态绑定(dynamic binding) 因为我们直到运行时才能知道到底调用了哪个版本的虚函数,可能是基类中的版本也可能是派生类中的版本,判断的依据是引用(或指针)所绑 定的对象的真实类型。 * 与非虚函数在编译时绑定不同,虚函数是在运行时选择函数的版本,所以动态绑定也叫运行时绑定(run-time binding)。 * * 虚函数的指针会保存到class里的"虚函数表"中。每一个对象都会一个自己的“虚函数表”。类似对函数指针列表。 * * */ using namespace::std; class Animal { public: string name; string attr; Animal(string n):name(n){}; Animal(string n,string a):name(n),attr(a){}; void runing(int i) { cout<<"animal("<<name <<") can

1025 PAT Ranking (25分)

巧了我就是萌 提交于 2020-03-03 16:58:07
文章目录 问题 解决方法 后记 问题 Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhejiang University. Each test is supposed to run simultaneously in several places, and the ranklists will be merged immediately after the test. Now it is your job to write a program to correctly merge all the ranklists and generate the final rank. Input Specification: Each input file contains one test case. For each case, the first line contains a positive number N (≤100), the number of test locations. Then N ranklists follow, each starts with a line containing a positive

周志华机器学习第四章例题4.4

元气小坏坏 提交于 2020-03-03 16:00:55
例题4.4的结果和书上画的图不一样,但是没问题,原因是GINI指数取最小值的时候,色泽和脐部值是一样的。 import numpy as np dataset = np . array ( [ [ 0 , 0 , 0 , 0 , 0 , 0 , 1 ] , [ 1 , 0 , 1 , 0 , 0 , 0 , 1 ] , [ 1 , 0 , 0 , 0 , 0 , 0 , 1 ] , [ 0 , 0 , 1 , 0 , 0 , 0 , 1 ] , [ 2 , 0 , 0 , 0 , 0 , 0 , 1 ] , [ 0 , 1 , 0 , 0 , 1 , 1 , 1 ] , [ 1 , 1 , 0 , 1 , 1 , 1 , 1 ] , [ 1 , 1 , 0 , 0 , 1 , 0 , 1 ] , [ 1 , 1 , 1 , 1 , 1 , 0 , 0 ] , [ 0 , 2 , 2 , 0 , 2 , 1 , 0 ] , [ 2 , 2 , 2 , 2 , 2 , 0 , 0 ] , [ 2 , 0 , 0 , 2 , 2 , 1 , 0 ] , [ 0 , 1 , 0 , 1 , 0 , 0 , 0 ] , [ 2 , 1 , 1 , 1 , 0 , 0 , 0 ] , [ 1 , 1 , 0 , 0 , 1 , 1 , 0 ] , [ 2 , 0 , 0 , 2 , 2 , 0

监督学习算法模型评估实例(sklearn版)

China☆狼群 提交于 2020-03-03 15:38:42
sklearn机器学习包中的模型评估指标都在包 sklearn.metrics 下; 链接地址:https://scikit-learn.org/stable/modules/classes.html?highlight=metrics#module-sklearn.metrics 这里我们选择几个常用的指标进行展示,sklearn的版本为0.22.1。 混淆矩阵(confusion_matrix) 函数原型为: sklearn . metrics . confusion_matrix ( y_true , y_pred , labels = None , sample_weight = None , normalize = None ) 详情链接:https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html#sklearn.metrics.confusion_matrix Examples >> > from sklearn . metrics import confusion_matrix >> > y_true = [ 2 , 0 , 2 , 2 , 0 , 1 ] >> > y_pred = [ 0 , 0 , 2 , 2 , 0 , 2 ] >> >

最简单的机器学习流程 基于sklearn

痴心易碎 提交于 2020-03-03 15:28:54
最简单的机器学习流程 1读取数据 import pandas as pd data = pd.read_csv 2切分数据与标签 datax = data.iloc[ ] datay = data.iloc[ ] 3划分数据集 from sklearn.model_selection import train_test_split x_train,x_test,y_train,y_test = train_test_split(datax,datay,test_size = ,random_state=) 4无量纲化 from sklearn.preprocessing import StandardScaler transfer = StandScaler()x_train_new = transfer.fit_transfrom(x_train)x_test_new = transfer.transform(x_test) 5预估器流程(svm举例) from sklearn.svm import svc estimator = svc(c=1.0,kernel = 'rbf',gamma='auto'....) 6网格搜索,交叉验证暴力求解超参数 from sklearn.model_selection import GridSearchCV c_range=np

Android JNI开发之NDK环境搭建

自古美人都是妖i 提交于 2020-03-03 14:00:04
参考:http://www.cnblogs.com/yejiurui/p/3476565.html 谷歌改良了ndk的开发流程,对于Windows环境下NDK的开发,如果使用的NDK是r7之前的版本,必须要安装Cygwin才能使用NDK。而在NDKr7开始,Google的Windows版的NDK提供了一个ndk-build.cmd的脚本,这样,就可以直接利用这个脚本编译,而不需要使用Cygwin了。只需要为Eclipse Android工程添加一个Builders,而为Eclipse配置的builder,其实就是在执行Cygwin,然后传递ndk-build作为参数,这样就能让Eclipse自动编译NDK了。那么我们现在开始吧: 一、关于NDK的一点解释: NDK全称:Native Development Kit。 NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。 NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。 NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。 二、 NDK 坏境搭建: 注意事项:目前已经出了NDK-r9b了

NDK学习三: 纯手工编译Hello World

孤人 提交于 2020-03-03 13:58:34
ndk学习之旅 http://blog.csdn.net/pathfinder163/article/details/7178909 http://www.cnblogs.com/yejiurui/p/3476565.html 谷歌改良了ndk的开发流程,对于Windows环境下NDK的开发,如果使用的NDK是r7之前的版本,必须要安装Cygwin才能使用NDK。而在NDKr7开始,Google的Windows版的NDK提供了一个ndk-build.cmd的脚本,这样,就可以直接利用这个脚本编译,而不需要使用Cygwin了。只需要为Eclipse Android工程添加一个Builders,而为Eclipse配置的builder,其实就是在执行Cygwin,然后传递ndk-build作为参数,这样就能让Eclipse自动编译NDK了。那么我们现在开始吧: 一、关于NDK的一点解释: NDK全称:Native Development Kit。 NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。 NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。

机器学习——回归模型

☆樱花仙子☆ 提交于 2020-03-03 12:02:35
一、线性回归 回归的目的是预测数值型的目标值。最直接的办法是依据输入写出一个目标值的计算公式,该公式就是所谓的回归方程(regression equation)。求回归方程中的回归系数的过程就是回归。 线性回归的几个特点: 1. 建模速度快,不需要很复杂的计算,在数据量大的情况下依然运行速度很快。 2. 可以根据系数给出每个变量的理解和解释 3. 对异常值很敏感。 # 代码表示:linear_model.LinearRegression() 二、岭回归 岭回归实质上就是在线性回归的基础上加了L2正则化项。 领回归的特点: 领回归的假设和最小平方回归相同,但是在最小平方回归的时候我们假设数据服从高斯分布使用的是极大似然估计(MLE),在领回归的时候由于添加了偏差因子,即w的先验信息,使用的是极大后验估计(MAP)来得到最终的参数 没有特征选择功能 # 代码表示:linear_model.Ridge(0.5) 三、LASSO回归 LASSO回归在线性回归的基础上加了L1正则化项。 L1正则化和L2正则化的区别: L1正则化会使得一些权重直接变为0,L2正则化只是将一些权重的值变的更小。L1跟拉普拉斯有关,L2跟高斯分布有关。 # 代码表示:linear_model.Lasso(0.1) 岭回归和Lasso回归之间的差异可以归结为L1正则和L2正则之间的差异: 内置的特征选择(Built

K.function的用法

烈酒焚心 提交于 2020-03-03 11:58:01
K.function除了能够实现指定输入和输出之外,还能够决定网络是处于训练模式还是测试模型 1或True:训练模式,dropout开启 0或False:测试模式,dropout失活 代码如下,需要先用K.function“实例化”一个f函数,然后f((X_test, True))代表将X_test传入作为model.layers[0]的输入,True代表训练模式——dropout打开,最终是model.output作为输出 f = K.function([self.model.layers[0].input, K.symbolic_learning_phase()], [self.model.output]) mc_preds = np.array([f((X_test, True))[0] for _ in range(mc_samples)]) 来源: CSDN 作者: 白色小靴 链接: https://blog.csdn.net/weixin_44684139/article/details/104626345