“人造太阳”计划

动手学深度学习:task01

北慕城南 提交于 2020-02-14 00:23:54
task01-线性模型、softmax与分类模型、多层感知机 一. 线性回归模型从零开始的实现 0.准备工作 #导入可视化的包和基本包 % matplotlib inline import torch from IPython import display from matplotlib import pyplot as plt import numpy as np import random print ( torch . __version__ ) 1.生成数据集 使用线性模型来生成数据集,生成一个1000个样本的数据集,线性关系: price = w1⋅area + w2⋅age + b # 输入特征 num_inputs = 2 # 样本数 num_examples = 1000 # 权重 偏差 true_w = [ 2 , - 3.4 ] true_b = 4.2 features = torch . randn ( num_examples , num_inputs , dtype = torch . float32 ) # 线性关系表达式 labels = true_w [ 0 ] * features [ : , 0 ] + true_w [ 1 ] * features [ : , 1 ] + true_b labels += torch . tensor (

【leetcode】【medium】341. Flatten Nested List Iterator

感情迁移 提交于 2020-02-13 13:08:34
341. Flatten Nested List Iterator Given a nested list of integers, implement an iterator to flatten it. Each element is either an integer, or a list -- whose elements may also be integers or other lists. Example 1: Input: [[1,1],2,[1,1]] Output: [1,1,2,1,1] Explanation: By calling next repeatedly until hasNext returns false, the order of elements returned by next should be: [1,1,2,1,1] Example 2: Input: [1,[4,[6]]] Output: [1,4,6] Explanation: By calling next repeatedly until hasNext returns false, the order of elements returned by next should be: [1,4,6] 题目链接: https://leetcode-cn.com/problems

STL学习记录:链表

寵の児 提交于 2020-02-13 12:22:48
直接百度链表的话,其实和真正用起来的STL链表差的挺远的(毕竟有些情况能用就行~),还是自己写一下记录一下STL里链表具体用法吧 #include <bits/stdc++.h> using namespace std; int main () { //1. 定义 //list<数据类型> 链表名称 list<int> test; list<int>::iterator iter=test.begin(); //2. 增删改查 //增加 test.push_front(1); //向头部增加元素 test.push_back(10); //向尾部增加元素 test.insert(iter,2,3); //向指定位置(迭代器位置)增加几个元素 //删除 test.pop_back(); //删除尾部元素 test.pop_front(); //删除头部元素 test.remove(1); //删除特定元素 test.unique(); //删除相邻重复元素 test.clear(); //改 test.sort(); //排序 test.reverse(); //反转 //查 test.empty(); //如果空链表,返回值为真 int howmany2=count(test.begin(),test.end(),2); //查有多少个2 iter=find(test.begin(

智能算法:蚁群算法

≡放荡痞女 提交于 2020-02-12 20:02:17
作为一种现代智能算法,蚁群算法不需要任何先验知识,最初只是随机地选择搜索路径,随着对解空间的了解,搜索更加具有规律性,并逐渐得到全局最优解。目前,蚁群算法已被成功地应用于求解旅行商问题、车辆调度问题以及指派问题等。。。 求解TSP: %% 第22章 蚁群算法的优化计算——旅行商问题(TSP)优化 %% 清空环境变量 clear all clc %% 导入数据 load citys_data.mat %% 计算城市间相互距离 n = size(citys,1); D = zeros(n,n); for i = 1:n for j = 1:n if i ~= j D(i,j) = sqrt(sum((citys(i,:) - citys(j,:)).^2)); else D(i,j) = 1e-4; end end end %% 初始化参数 m = 50; % 蚂蚁数量 alpha = 1; % 信息素重要程度因子 beta = 5; % 启发函数重要程度因子 rho = 0.1; % 信息素挥发因子 Q = 1; % 常系数 Eta = 1./D; % 启发函数 Tau = ones(n,n); % 信息素矩阵 Table = zeros(m,n); % 路径记录表 iter = 1; % 迭代次数初值 iter_max = 200; % 最大迭代次数 Route_best =

python iter,迭代器&dict,字典详解

不打扰是莪最后的温柔 提交于 2020-02-12 11:25:00
可以直接作用于for循环的对象统称为可迭代对象(Iterable)。 可以被next()函数调用并不断返回下一个值的对象称为迭代器(Iterator)。 所有的Iterable均可以通过内置函数iter()来转变为Iterator。 迭代器为类序列对象提供了一个类序列的接口。python的迭代无缝地支持序列对象,而且它还允许程序员迭代非序列类型,包括用户定义的对象。迭代器用起来很灵巧,你可以迭代不是序列但表现处序列行为的对象,例如字典的键、一个文件的行,等等。迭代器的作用如下: >>> i=iter('abcd') >>> print i.next() a >>> print i.next() b >>>print i.next() c    s = {'one':1,'two':2,'three':3} print s {'three': 3, 'two': 2, 'one': 1} >>> m = iter(s) >>> print m.next() three >>> print m.next() two >>> print m.next() one dict {'key':value,'key':value} 查询可以用get方法 ,也可以直接通过key查询,不过这样如果不存在这个key将会报错,而get会给出None  可以直接添加或者更改dict,dict('key')

python中迭代器和iter()函数

流过昼夜 提交于 2020-02-12 11:06:59
迭代器为类序列对象提供了一个类序列的接口。python的迭代无缝地支持序列对象,而且它还允许程序员迭代非序列类型,包括用户定义的对象。迭代器用起来很灵巧,你可以迭代不是序列但表现处序列行为的对象,例如字典的键、一个文件的行,等等。迭代器的作用如下: •提供了刻扩展的迭代器接口; •对列表迭代带来了性能上的增强; •在字典迭代中性能提升; •创建真正的迭代接口,而不是原来的随即对象访问; •与所有已经存在的用户定义的类以及扩展得模拟序列和映射的对象向后兼容; •迭代非序列集合(例如映射和文件)时,可以创建更简洁可读的代码 #iter and generator#the first try#=================================i = iter('abcd')print i.next()print i.next()print i.next()s = {'one':1,'two':2,'three':3}print sm = iter(s)print m.next()print m.next()print m.next() D:\Scirpt\Python\Python高级编程>python ch2_2.py a b c {'three': 3, 'two': 2, 'one': 1} three two one 来源: https://www.cnblogs

pr_debug、dev_dbg等动态调试一

谁都会走 提交于 2020-02-09 03:08:59
内核版本:Linux-3.14 作者:彭东林 邮箱:pengdonglin137@163.com pr_debug: #if defined(CONFIG_DYNAMIC_DEBUG) /* dynamic_pr_debug() uses pr_fmt() internally so we don't need it here */ #define pr_debug(fmt, ...) \ dynamic_pr_debug(fmt, ##__VA_ARGS__) #elif defined(DEBUG) #define pr_debug(fmt, ...) \ printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__) #else #define pr_debug(fmt, ...) \ no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__) #endif dev_dbg: #if defined(CONFIG_DYNAMIC_DEBUG) #define dev_dbg(dev, format, ...) \ do { \ dynamic_dev_dbg(dev, format, ##__VA_ARGS__); \ } while (0) #elif defined(DEBUG) #define dev

迭代器知识整理

纵饮孤独 提交于 2020-02-08 16:11:22
对数组的访问可以使用下标运算符,对链表的访问可以使用指针,对容器对象的访问使用到一种更为通用的机制,迭代器(iterator)。所有的标准库容器都可以使用迭代器,类似于指针,迭代器可以访问某个元素,可以从一个元素移动到一个元素,迭代器有有效与无效之分。 使用迭代器 auto b=v.begin(),e=v.end(); begin负责返回指向容器第一个元素的迭代器,即b是指向容器v的第一个元素的迭代器,迭代器的类型不确定,用auto表示,即让编译器自己确定迭代器的类型;end负责返回指向容器尾元素的下一位置的迭代器,即指向的是一个不存在的“尾后”元素,返回的迭代器称为“尾后迭代器”。特俗情况下,如果容器为空,则begin和end返回的是同一个迭代器。 迭代器运算符 使用==和!=来两个比较迭代器是否相等,若两个迭代器指向的元素相同或者都是一个额容器的尾后迭代器,则相等,否则就说不相等。 //iter是迭代器 *iter;//返回迭代器iter所指向元素的引用 iter->mem;//相当于(*iter).mem,访问所指向元素的mem成员 ++iter;//指向容器的下一元素 --iter;//指向容器的上一元素 注意:end返回的迭代器并不指向实际的某个元素,所以不能对其进行递增或解引用操作。 迭代器类型 一般来说我们并不知道(也无需知道)迭代器的精确类型。实际上

珂朵莉树的易懂教学

删除回忆录丶 提交于 2020-02-07 23:34:34
0xff:前置芝士 在阅读本文前,请先了解并会熟练掌握:set、set的迭代器、结构体struct的相关操作, 不会的先去了解并使用熟练后再来看本文 一、什么是珂朵莉树? 珂朵莉树是一种数据结构,又称Old Driver Tree(ODT老司机树),是一种基于set的暴力数据结构,等一下会讲解。 二、为什么叫珂朵莉树? 这个数据结构诞生于一道cf毒瘤题 CF896C Willem, Chtholly and Seniorious ,命名为珂朵莉树的原因很明显,题目名字翻译过来是威廉,珂朵莉和瑟尼欧里斯,然后题目中附带了一张动漫中的截图(威廉帮珂朵莉调整瑟尼欧里斯),出题人ODT在题解里写到了这个新数据结构,命名为 Chtholly Tree ,据说能艹翻标程 珂朵莉·诺塔·瑟尼欧里斯出自TV动画 末日时在做什么?有没有空?可以来拯救吗? ,珂学家指的就是珂朵莉厨(没错我就是) 中国珂学院: https://www.chtholly.ac.cn/ 好回归正题: 三、为什么要用珂朵莉树? 珂朵莉树的关键操作在于它可以把一段区间赋值成同一个数x, 并且数据要随机,因为它本身就很玄学 四、怎么写珂朵莉树呢? 1.节点初始化 一棵树肯定有节点啊,这里用一个 struct 存 struct Node { int l,r; mutable int val; Node(int _l,int _r=

C++ primer 9.3.1节练习

跟風遠走 提交于 2020-02-06 15:21:40
9.18 - 9.22 //***********9.3.1节练习 9.18************** string temp; deque<string> sdeq;//默认初始化 while (cin >> temp) { sdeq.push_back(temp); } for (auto i = sdeq.cbegin(); i != sdeq.cend(); ++i) cout << *i << endl; //***********9.19************************ list<string> slist; string temp1; while (cin >> temp1) { slist.push_back(temp1); } for (auto i = slist.cbegin(); i != slist.cend(); ++i) cout << *i << endl; //故和上一个练习相比,并无太多改动 //*************9.20*********************** list<int> ilist; for (int i = 0; i != 10; ++i) { ilist.push_back(i); } deque<int> odddeq,evendeq; for (auto i = ilist.cbegin();