“人造太阳”计划

iter( )函数

半腔热情 提交于 2019-11-29 17:14:40
iter() 函数用来生成迭代器。 iter(object[, sentinel]) 参数 object – 支持迭代的集合对象。 sentinel – 如果传递了第二个参数,则参数 object 必须是一个可调用的对象(如,函数),此时,iter 创建了一个迭代器对象,每次调用这个迭代器对象的__next__()方法时,都会调用 object。 返回值: 迭代器对象。 >> > lst = [ 1 , 2 , 3 ] >> > for i in iter ( lst ) : . . . print ( i ) . . . 1 2 3 >> > l = [ 2 , 3 , 4 ] >> > iterl = iter ( l ) >> > iterl . next ( ) 2 >> > iterl . next ( ) 3 >> > iterl . next ( ) 4 >> > iterl . next ( ) Traceback ( most recent call last ) : File "<stdin>" , line 1 , in < module > StopIteration 来源: https://blog.csdn.net/HHG20171226/article/details/100861117

自适应线性神经网络Adaline

萝らか妹 提交于 2019-11-29 15:04:55
自适应线性神经网络Adaptive linear network, 是神经网络的入门级别网络。 相对于感知器, 采用了f(z)=z的激活函数,属于连续函数。 代价函数为LMS函数,最小均方算法,Least mean square。 实现上,采用随机梯度下降,由于更新的随机性,运行多次结果是不同的。 1 ''' 2 Adaline classifier 3 4 created on 2019.9.14 5 author: vince 6 ''' 7 import pandas 8 import math 9 import numpy 10 import logging 11 import random 12 import matplotlib.pyplot as plt 13 14 from sklearn.datasets import load_iris 15 from sklearn.model_selection import train_test_split 16 from sklearn.metrics import accuracy_score 17 18 ''' 19 Adaline classifier 20 21 Attributes 22 w: ld-array = weights after training 23 l: list = number of

c++之迭代器

流过昼夜 提交于 2019-11-29 11:33:56
一、迭代器简介 迭代器是一种遍历容器内元素的数据类型,类似于指针。迭代器是用来指向容器内的某一个元素。 如:string、vector都可以用[]进行访问,但更常用的访问方式是使用迭代器进行访问。 通过迭代器可以读取、修改指向的容器内的元素。 常用的容器还有list、map,c++都有对应的迭代器。 二、容器的迭代器类型 vector<int> iv = {100,200,300}; vector<int>::iterator iter; // 定义迭代器 三、迭代器相关操作 //begin() end()操作一般返回迭代器类型,反向迭代器rbegin()/rend(); vector<int> iv={100,200,300}; vector<int>::iterator iter; // 定义迭代器 iter = iv.begin(); //如果容器有元素,返回的迭代器指向第一个元素 iter = iv.end(); //指向末端元素的后边,为无效数据//如果一个容器为空,则begin()和end()返回的迭代器相同,起到标记的作用。 vector<int> iv={100,200,300}; // 使用正向迭代器 for(vector<int>::iterator iter = iv.begin(); iter != iv.end(); iter++){  cout <<

517_CSP-S_%你赛2_赛后总结

穿精又带淫゛_ 提交于 2019-11-29 11:21:26
A题,考试的时候花了90min左右终于想出一个接近正解的办法(而然大佬都是一眼扫出结果),发现每个数分解都是log(n)完成并且有效的子因子始终只有两个,所以可以开map记录每个数分解的情况, /* A - 木棍 */ #include <bits/stdc++.h> #define int long long using namespace std; const int MAXN = 51; int n, a[MAXN], anss = MAXN * 30; struct rec { int num, sum; }; map<int, int> ans, mp; priority_queue<rec> q; bool operator<(const rec &a, const rec &b) { return a.sum > b.sum; } inline int read() { int x = 0, f = 1; char ch = getchar(); while (!isdigit(ch)) f = (ch == '-') ? -1 : 1, ch = getchar(); while (isdigit(ch)) x = x * 10 + (ch - '0'), ch = getchar(); return x * f; } void bfs(int now, int i

day13 itertor

那年仲夏 提交于 2019-11-29 10:38:41
1.迭代器(itertor):   迭代:迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结     果会作为下一次迭代的初始值。 2.探究迭代器的工作原理:   可使用for循环的类型:list,dic,set,turple,f= open(),enumerate   为什么这些类型可以使用for循环?   print(dir(类型)) :可以用于查看函数里面存在的方法,即这些类型里面都存在某些相同的方法,而这些方法构成了循环这一功能   循环的原理:     循环的原理即调用函数内的方法:可使用双下划线的调用方法 例:print([].__iter__())   探究是函数内的那些方法构成循环的这一功能?     可使用交集判断是函数内那些方法(将类型转化为集合,在进行交集运算)     例: ret = set(dir([]))&set(dir({}))&set(dir(''))&set(dir(range(10)))) print(ret)   输出结果: {'__len__', '__getattribute__', '__str__', '__getitem__', '__lt__', '__gt__', '__ne__', '__new__', '__dir__', '__subclasshook__

Linux内核klist链表分析

天涯浪子 提交于 2019-11-29 08:24:10
1、前言 在Linux内核源码中,除了简洁的list链表还有klist链表,它是list链表的线程安全版本,在结构中提供了整个链表的自旋锁,对链表节点查找、插入和删除等操作,都需要先获得这个自旋锁,klist链表节点数据结构klist_node引入了引用计数,只有当节点的的引用计数为0时,才允许该节点从klist链表中移除。 2、klist链表相关结构 内核源码中,klist相关的头文件在include/linux/klist.h,实现的文件在lib/klist.c中,接下来分析一下klist链表头和klist链表节点的定义: 首先是klist链表头的定义,如下: struct klist { spinlock_t k_lock; struct list_head k_list; void (*get)(struct klist_node *); void (*put)(struct klist_node *); } __attribute__ ((aligned (sizeof(void *)))); 成员分析: k_lock:链接节点操作需要的自旋锁; k_list:嵌入的双向链表list; get:函数指针,用于链表内的节点增加引用计数; put:函数指针,用于链表内的节点减少引用计数。 需要注意的是,该结构体是sizeof(void *)字节对齐,假设是4字节对齐的话

迭代器

可紊 提交于 2019-11-29 05:37:10
1. 迭代 根据记录的前面的元素的位置信息 去访问后续的元素的过程 -遍历 迭代 2. 可迭代对象 iterable   如何判断可迭代对象的3种方式 能够被迭代访问的对象 for in 常用可迭代对象-list tuple str from collections import Iterable isinstance(obj, Iterable) 3. 可迭代对象 可迭代对象通过__iter__方法提供一个 可以遍历对象中数据的工具-迭代器 iter(可迭代对象) 可以获取可迭代对象的迭代器 通过迭代器可以迭代访问 数据 next(迭代器) ===== 迭代器对象.__next__() """ 1 可迭代对象的本质 提供了一个迭代器(遍历可迭代对象中的数据) 2 如何获取可迭代对象中的迭代器 迭代器对象 = iter(可迭代对象) 3 如果通过迭代器访问可迭代对象中下一个元素 元素的值 = next(迭代器对象)                   如果迭代器遍历完成 抛出 停止迭代-异常StopIteration """ 如果需要实现一个迭代器 就需要实现__next__() 4. 迭代器 iterator -- 迭代器访问可迭代对象中数据 判断对象是否是迭代器类型 from collections import Iterator isinstance(obj,

机器学习之SVM支持向量机笔记

有些话、适合烂在心里 提交于 2019-11-29 02:08:13
数学理论部分 1.svm支持向量机是什么? 如下图所示,SVM的目标就是寻找一条图中的黑线,使得这条线到两个分类的距离最大,即寻找最大间隔 2.超平面:我们定义那条黑线为超平面,函数公式为 ƒ(x)= w T x + b ,当ƒ(x)= w T x + b=0时为黑线处,大于或者小于分别表示一个类别。 3.分类:根据超平面我们可以进行如下定义,完成分类 【注】我们将类别 y i 定义为正负一是为了方便计算边界条件 ,就拿1分类举例,因为y i 为1,所以 yi(w T x + b )>=1仍然成立,这个分类的边界为 yi(w T x + b)=1,我们顺利的将标签y与特征x均放入了一个公式当中。 4.距离计算: 样本点到超平面距离为 ,样本之间的间隔为 4.1推导样本点到平面距离: 方法一: , ,两个公式联立可得 ,||w||为范数,是所有元素平方和再开方,w是一个方向向量 方法二:利用中学的距离公式,点到直线的距离公式 ,现在已知直线是ƒ(x)= w T x + b,所以 4.2推导:从3中可以知道分类的边界是 yi(w T x + b)=1,而 yi=1,所以w T x + b=1,于是单边间距为 ,总间距为 5.拉格朗日乘数法:对于多元函数 ƒ(x,y)在约束条件φ(x,y)情况下求极值可以使用拉格朗日乘数法,首先加入一个拉格朗日乘数λ,构造出拉格朗日函数 ,对 x、y

TensorFlow 模型的保存与载入

a 夏天 提交于 2019-11-29 01:53:55
参考学习博客: # https://www.cnblogs.com/felixwang2/p/9190692.html一、模型保存 1 # https://www.cnblogs.com/felixwang2/p/9190692.html 2 # TensorFlow(十三):模型的保存与载入 3 4 import tensorflow as tf 5 from tensorflow.examples.tutorials.mnist import input_data 6 7 # 载入数据集 8 mnist = input_data.read_data_sets("MNIST_data", one_hot=True) 9 10 # 每个批次100张照片 11 batch_size = 100 12 # 计算一共有多少个批次 13 n_batch = mnist.train.num_examples // batch_size 14 15 # 定义两个placeholder 16 x = tf.placeholder(tf.float32, [None, 784]) 17 y = tf.placeholder(tf.float32, [None, 10]) 18 19 # 创建一个简单的神经网络,输入层784个神经元,输出层10个神经元 20 W = tf.Variable(tf

【转载】DBUS及常用接口介绍

家住魔仙堡 提交于 2019-11-28 21:51:25
转自:https://blog.csdn.net/mr_wangning/article/details/60324291 DBUS是一种高级的进程间通信机制。DBUS支持进程间一对一和多对多的对等通信,在多对多的通讯时,需要后台进程的角色去分转消息,当一个进程发消息给另外一个进程时,先发消息到后台进程,再通过后台进程将信息转发到目的进程。DBUS后台进程充当着一个路由器的角色。 DBUS中主要概念为总线,连接到总线的进程可通过总线接收或传递消息,总线收到消息时,根据不同的消息类型进行不同的处理。DBUS中消息分为四类: 1. Methodcall消息:将触发一个函数调用 ; 2. Methodreturn消息:触发函数调用返回的结果; 3. Error消息:触发的函数调用返回一个异常 ; 4. Signal消息:通知,可以看作为事件消息。 1.2 DBUS应用场景 根据DBUS消息类型可知,DBUS提供一种高效的进程间通信机制,主要用于进程间函数调用以及进程间信号广播。 1 . 函数调用 DBUS可以实现进程间函数调用,进程A发送函数调用的请求(Methodcall消息),经过总线转发至进程B。进程B将应答函数返回值(Method return消息)或者错误消息(Error消息)。 2 . 消息广播 进程间消息广播(Signal消息)不需要响应