“人造太阳”计划

caffe中参数设置的解析

自闭症网瘾萝莉.ら 提交于 2019-12-04 06:07:00
lenet_solver.prototxt: net: "examples/mnist/lenet_train_test.prototxt" test_iter: 100 test_interval: 500 base_lr: 0.01 momentum: 0.9 type: SGD weight_decay: 0.0005 lr_policy: "inv" gamma: 0.0001 power: 0.75 display: 100 max_iter: 20000 snapshot: 5000 snapshot_prefix: "examples/mnist/lenet" solver_mode: CPU net :网络模型(训练网络模型、测试网络模型) test_iter :测试的批次数,这个参数要与batch_size结合起来理解,例如:mnist数据集中测试样本总数为10000,一次执行全部数据效率很低,因此,我们将测试数据分几个批次来执行。假定我们设置batch_size为100,则需要迭代100次才能将10000个数据全部执行完,因此,将test_iter设置为100。执行完一次全部数据,称之为一个epoch test_iterval :测试间隔,每训练500次进行一次测试 base_lr: 0.01 lr_policy: "inv" gamma: 0.0001

11.10

混江龙づ霸主 提交于 2019-12-04 03:49:09
容器: 迭代器: vector<int> :: iterator iter; iter1=iter.bengn(); //元素首地址 iter2=iter.end(); // *iter //地址所对应的元素 iter->neon //可自增自加; for(vector<int>::iterator iter=ivec.begin();iter=ivec.end(); ++iter *iter=0; vector:可变数组 顺序容器: 1.vector:删除元素较慢 2.list :双向链表,支持双向访问,在list中任何位置进行插入删除很快 3.deque:双端队列,支持随机访问。在头尾插入元素很快。 4.string 容器适配器: 所有适配器支持: stack: queue: 关联适配器: 1.map 2.set 3.multimap 4.multiset 贪心: 最长上升子序列: 1.dp O(n^2) f[i]=max(f[i-k]])+1; 以第i个结尾的最长子序列 2.O(nlogn)贪心+二分: f[i]:长度为i的上升子序列的最后一个元素的值; 如果遇到更小的将它更新 长度为大的序列依赖于长度小的序列 单调递增,二分查找:大于等于x的最小值。 来源: https://www.cnblogs.com/yangln/p/11828967.html

迭代器_学习笔记

不打扰是莪最后的温柔 提交于 2019-12-04 03:42:52
1 # Author:CallMeV 2 # DATE :2019-11-10 3 # Time : 10:43 4 5 # 迭代器的创建 6 l = [1,2,3,4] 7 d = iter(l) # <list_iterator object at 0x000002AEA4DD4490> 8 print(d) 9 print(next(d)) 10 print(next(d)) 11 print(next(d)) 12 print(next(d)) 13 14 15 # for循环做的三件事情: 16 # 1、调用iter方法返回一个可迭代对象 17 # 2、不断调用可迭代对象的next方法 18 # 3、处理StopInteration 19 for i in [1,2,3,4]: 20 print(i) 21 22 from collections import Iterator 23 print(isinstance([1,2],list)) 24 print(isinstance(l,Iterator)) 25 print(isinstance(d,Iterator)) 迭代器满足两个条件:1 有 iter 方法 2 有 next 方法 来源: https://www.cnblogs.com/fly10086/p/11829270.html

初学设计模式之观察者模式

断了今生、忘了曾经 提交于 2019-12-04 03:42:25
观察者模式代码例子 1 //观察者模式 2 #include<iostream> 3 #include<list> 4 using namespace std; 5 6 class MasterListener 7 { 8 public: 9 virtual void OnChange() 10 { 11 }; 12 13 }; 14 15 class Student1:MasterListener 16 { 17 public: 18 void OnChange() 19 { 20 cout<<"同学A不看小说了"<<endl; 21 }; 22 }; 23 24 25 class Student2:MasterListener 26 { 27 public: 28 void OnChange() 29 { 30 cout<<"同学B不玩手机了"<<endl; 31 }; 32 }; 33 34 35 class Master 36 { 37 protected: 38 list<MasterListener*>m_list; 39 //MasterListener* m_MasterListenerPtr; 40 public: 41 void setListener(MasterListener* m_MasterListenerPtr) 42 { 43 m_list

初学设计模式之迭代器模式

我的梦境 提交于 2019-12-04 03:36:20
概念与定义 迭代器模式提供一种方法访问一个容器对象中各个元素,而又不需要暴露该对象的内部细节 迭代器模式的应用 迭代器模式是一种退化的设计模式,因为它的使用过于普遍,因此被嵌入到具体语言中了,C++使用迭代器读取其中元素的例子 1 //迭代器 2 3 #include<iostream> 4 #include<vector> 5 #include<string> 6 #include<list> 7 8 using namespace std; 9 10 int main() 11 { 12 vector<string>m_vector; 13 list<string>m_list; 14 string m_str[] ={"A","B","C","D","E"}; 15 16 //向容器里面添加元素 17 for(int i=0;i<sizeof(m_str)/sizeof(m_str[0]);i++) 18 { 19 m_vector.push_back(m_str[i]); 20 m_list.push_back(m_str[i]); 21 }; 22 23 //利用迭代器读取容器里面的元素 24 for(vector<string>::iterator iter=m_vector.begin();iter!=m_vector.end();iter++) 25 { 26

数据结构之单链表结构与操作

浪子不回头ぞ 提交于 2019-12-04 01:05:09
单链表结构 头结点不存放数据,开始存放数据的节点为开始节点。 带头结点的单链表相关操作 /* * @file 单链表.cpp * @brief 单链表的创建及其相关操作 * @author linzijie * @platform Ubuntu 16.04 gcc version 5.4.0 * @date 2019/11/9 */ #include <iostream> #include <vector> using namespace std; // 单链表节点存储的数据类型定义 typedef int ElemType; // 单链表结构体定义如下 typedef struct LNode { ElemType data; struct LNode * next; }LinkList; /* * @brief 头插法建立单链表 * @param list 单链表头结点指针的引用 * datas 需要放入节点的数据 * @note list指针为空,建立时初始化,头结点不保存数据 * 采用头插法,数据的顺序与datas相反 * 动态申请内存空间,需要调用DestroyLinkList函数手动销毁 * @Sample LinkList *list = nullptr; * vector<ElemType> datas{1, 2, 3, 4, 5}; *

动手深度学习8-softmax分类pytorch实现

风流意气都作罢 提交于 2019-12-03 15:16:52
定义和初始化模型 softamx和交叉熵损失函数 定义优化算法 训练模型 import torch from torch import nn from torch.nn import init import numpy as np import sys sys.path.append('..') import d2lzh_pytorch as d2l import torchvision import torchvision.transforms as transforms 定义和初始化模型 #与上一节同样的数据集以及批量大小 batch_size= 256 mnist_train= torchvision.datasets.FashionMNIST(root='~/Datasets/FashionMNIST',download=True,train=True,transform=transforms.ToTensor()) mnist_test = torchvision.datasets.FashionMNIST(root='~/Datasets/FashionMNIST',download=True,train=False,transform=transforms.ToTensor()) if sys.platform.startswith('win'): num

蚁群算法

假装没事ソ 提交于 2019-12-03 14:52:26
一、蚁群算法简介   蚁群算法(AG)是一种模拟蚂蚁觅食行为的模拟优化算法,它是由意大利学者Dorigo M等人于1991年首先提出,并首先使用在解决TSP(旅行商问题)上。 之后,又系统研究了蚁群算法的基本原理和数学模型. 二、蚁群算法原理 1、蚂蚁在路径上释放信息素。 2、碰到还没走过的路口,就随机挑选一条路走。同时,释放与路径长度有关的信息素。 3、信息素浓度与路径长度成反比。后来的蚂蚁再次碰到该路口时,就选择信息素浓度较高路径。 4、最优路径上的信息素浓度越来越大。 5、最终蚁群找到最优寻食路径。 三、蚁群算法流程图 四、实例应用 基于TSP问题的基本蚁群算法 原理讲解参考老师上课讲解的PPT不做过多粘贴 1.源代码: %% 旅行商问题(TSP)优化 %% 清空环境变量 clear all clc %% 导入数据 citys = ceil(rand(50,2)*50000) %load newcitys.mat %% 计算城市间相互距离 fprintf('Computing Distance Matrix... \n'); 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

蚁群算法求解TSP问题

假如想象 提交于 2019-12-03 14:40:40
一、蚁群算法简介 蚁群算法是对自然界蚂蚁的寻径方式进行模似而得出的一种仿生算法:蚂蚁在运动过程中,能够在它所经过的路径上留下信息素(pheromone)的物质进行信息传递,而且蚂蚁在运动过程中能够感知这种物质,并以此指导自己的运动方向。由大量蚂蚁组成的蚁群集体行为便表现出一种信息正反馈现象:某一路径上走过的蚂蚁越多,则后来者选择该路径的概率就越大。蚁群算法具有分布计算、信息正反馈和启发式搜索的特征,本质上是进化算法中的一种启发式全局优化算法。 二、TSP问题(旅行商问题) T S P 问 题 可 以 用 一 个 带 权 完 全 图G=(N,A)来表示,其中N是带有n=|N|点(城市)的集合,A是完全连接这些点的边的集合。每一条边(i,j)属于A都带有一个权值,它代表城市i与城市j之间的距离。TSP问题就是要找到图中的最短哈密尔顿回路。 1、构建图:构建图与问题描述图是一致的,成份的集合C对应着点的集合(即:C=N),连接对应着边的集合(即L=A),且每一条边都带有一个权值,代表点i和j之间的距离。 2、约束条件:所有城市都要被访问且每个城市最多只能被访问一次。 3、信息素和启发式信息:TSP 问题中的信息素表示在访问城市i后直接访问城市j的期望度。启发式信息值一般与城市i和城市j的距离成反比。 4、解的构建:每只蚂蚁最初都从随机选择出来的城市出发

pythonic-迭代器函数-itertools

倾然丶 夕夏残阳落幕 提交于 2019-12-03 12:22:52
认识 Python 的itertools模块提供了很多 节省内存的高效迭代器 , 尤其解决了一些关于数据量太大而导致 内存溢出(outofmemory) 的场景. 我们平时用的循环绝大多数是这样的. # while 循环: 求1+2+...100 s, i = 0, 1 while i <= 100: s += i i += 1 print('while-loop: the some of 1+2+..100 is:', s) # for 循环 s = 0 for i in range(101): s += i print('for-loop: the some of 1+2+..100 is:', s) while-loop: the some of 1+2+..100 is: 5050 for-loop: the some of 1+2+..100 is: 5050 但如果数据量特别大的话就凉凉了, 所以引入了itertools,迭代器, 类似于 懒加载 的思想 常用API chain() groupby() accumulate() compress() takewhile() islice() repeat() chain 拼接元素 把一组迭代对象串联起来,形成一个更大的迭代器: # join / split s = "If you please draw me a