num

tf.train.slice_input_producer()

可紊 提交于 2020-03-27 22:00:04
tf.train.slice_input_producer处理的是来源tensor的数据 转载自: https://blog.csdn.net/dcrmg/article/details/79776876 里面有详细参数解释 官方说明 简单使用 import tensorflow as tf images = ['img1', 'img2', 'img3', 'img4', 'img5'] labels= [1,2,3,4,5] epoch_num=8 f = tf.train.slice_input_producer([images, labels],num_epochs=None,shuffle=True) with tf.Session() as sess: sess.run(tf.global_variables_initializer()) coord = tf.train.Coordinator() threads = tf.train.start_queue_runners(sess=sess, coord=coord) for i in range(epoch_num): k = sess.run(f) print (i,k) coord.request_stop() coord.join(threads) 运行结果: 用tf.data.Dataset.from

tensorflow数据读取机制tf.train.slice_input_producer 和 tf.train.batch 函数

a 夏天 提交于 2020-03-27 21:56:54
tensorflow中为了充分利用 GPU ,减少GPU等待数据的空闲时间,使用了两个线程分别执行数据读入和数据计算。 具体来说就是使用一个线程 源源不断 的将硬盘中的图片数据读入到一个内存队列中,另一个线程负责计算任务,所需数据直接从内存队列中获取。 tf在内存队列之前,还设立了一个文件名队列,文件名队列存放的是参与训练的文件名,要训练 N个epoch,则文件名队列中就含有N个批次的所有文件名。而创建tf的文件名队列就需要使用到 tf.train.slice_input_producer 函数。 tf.train.slice_input_producer是一个tensor生成器,作用是按照设定,每次从一个tensor列表中按顺序或者随机抽取出一个tensor放入文件名队列。 tf.train.slice_input_producer(tensor_list, num_epochs=None, shuffle=True, seed=None, capacity=32, shared_name=None, name=None)  第一个参数 tensor_list:包含一系列tensor的列表,表中tensor的第一维度的值必须相等,即个数必须相等,有多少个图像,就应该有多少个对应的标签。 第二个参数num_epochs: 可选参数,是一个整数值,代表迭代的次数,如果设置 num

tensorflow中协调器 tf.train.Coordinator 和入队线程启动器 tf.train.start_queue_runners

故事扮演 提交于 2020-03-27 21:28:50
TensorFlow的Session对象是支持多线程的,可以在同一个会话(Session)中创建多个线程,并行执行。在Session中的所有线程都必须能被同步终止,异常必须能被正确捕获并报告,会话终止的时候, 队列必须能被正确地关闭。 TensorFlow提供了两个类来实现对Session中多线程的管理:tf.Coordinator和 tf.QueueRunner,这两个类往往一起使用。 Coordinator类用来管理在Session中的多个线程,可以用来同时停止多个工作线程并且向那个在等待所有工作线程终止的程序报告异常,该线程捕获到这个异常之后就会终止所有线程。 使用 tf.train.Coordinator()来创建一个线程管理器(协调器)对象 。 QueueRunner类用来启动tensor的入队线程,可以用来启动多个工作线程同时将多个tensor(训练数据)推送入文件名称队列中,具体执行函数是 tf.train.start_queue_runners , 只有调用 tf.train.start_queue_runners 之后,才会真正把tensor推入内存序列中,供计算单元调用,否则会由于内存序列为空,数据流图会处于一直等待状态 。 tf中的数据读取机制如下图: 调用 tf.train.slice_input_producer,从 本地文件里抽取tensor

Python爬虫获取斗鱼主播信息

廉价感情. 提交于 2020-03-27 19:01:27
3 月,跳不动了?>>> 感谢参考原文- http://bjbsair.com/2020-03-27/tech-info/7150/ 下面我们进入正题 首先 我们进入斗鱼的官网 我发现首页是一些推荐的主播,并不全面,不能全部爬取,所以我这里选择了分类页 分类页地址: https://www.douyu.com/directory 这里是斗鱼所以的直播分类,我们可以看到所有的分类全部都在这一页,所以我们只需要把每个分类的地址拿到。 在浏览器中按F12,我们看到 每个分类都是由 标签写的标签的class为unit,并且含有链接和文本 所有我们只需要 def main_wj(): r = requests.get(" https://www.douyu.com/directory ") #从分类目录读取所有分类的名字和链接地址 r.encoding = 'utf-8' soup = BeautifulSoup(r.text, 'html.parser') #美丽汤,用于html更加简便 urls = [] names = [] for link in soup.select('.unit '): #分类链接和名字的 class 是unit urls.append(link.select('a')[0]['href']) #添加链接到urls列表 names.append(link

hdu 1058 Humble Numbers

荒凉一梦 提交于 2020-03-27 18:08:24
Problem Description A number whose only prime factors are 2,3,5 or 7 is called a humble number. The sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27, ... shows the first 20 humble numbers. Write a program to find and print the nth element in this sequence Input The input consists of one or more test cases. Each test case consists of one integer n with 1 <= n <= 5842. Input is terminated by a value of zero (0) for n. Output For each test case, print one line saying "The nth humble number is number.". Depending on the value of n, the correct suffix "st", "nd", "rd",

1050 螺旋矩阵

倾然丶 夕夏残阳落幕 提交于 2020-03-27 16:27:52
英文题目: 1105 Spiral Matrix 中文题目: 1050 螺旋矩阵 1 #include<iostream> 2 #include<vector> 3 #include<algorithm> 4 #include<cmath> 5 using namespace std; 6 7 int matrix[10010][110] = {0}; 8 int main() { 9 int N; 10 cin>>N; 11 vector<int> v(N); 12 for(int i = 0; i < N; ++i) cin>>v[i]; 13 sort(v.begin(),v.end(),greater<int>()); 14 int m,n; 15 for(int i = 1; i <= sqrt(N); ++i) { 16 if(N % i == 0) { 17 n = i; 18 m = N/n; 19 } 20 } 21 int num = 0,i = 0,j = -1; 22 while(num < N) { 23 while(j+1 < n && matrix[i][j+1] == 0) 24 matrix[i][++j] = v[num++]; 25 while(i+1 < m && matrix[i+1][j] == 0) 26 matrix[++i][j]

泛型

試著忘記壹切 提交于 2020-03-27 11:19:02
3 月,跳不动了?>>> 泛型(Generic)的特性 使用泛型是一种增强程序功能的技术,具体表现在以下几个方面: 它有助于您最大限度地重用代码、保护类型的安全以及提高性能。 您可以创建泛型集合类。.NET 框架类库在 System.Collections.Generic 命名空间中包含了一些新的泛型集合类。您可以使用这些泛型集合类来替代 System.Collections 中的集合类。 您可以创建自己的泛型接口、泛型类、泛型方法、泛型事件和泛型委托。 您可以对泛型类进行约束以访问特定数据类型的方法。 关于泛型数据类型中使用的类型的信息可在运行时通过使用反射获取。 1、基本运用 //创建一个类处理int类型或double类型或其他类型的相加 class ClassA<T> //T为未知的类型(也就是一个数据类型),可能是int,也可能是double { //当使用ClassA进行构造时,需要指定T的类型 private T a; private T b; public ClassA(T a, T b) //构造函数 { this.a = a, this.b = b; } public string GetSum() { return a + " " + b; } } var o1 = new ClassA<int>(12,34); //当我们利用泛型类构造时,需要指定泛型的类型

3.26课堂

自古美人都是妖i 提交于 2020-03-27 08:26:03
1、二分法 算法:是高效解决问题的办法 算法之二分法 需求:有一个按照从小到大顺序排列的数字列表 需要从该数字列表中找到我们想要的那个一个数字 如何做更高效??? nums=[-3,4,7,10,13,21,43,77,89] find_num=10 nums=[-3,4,13,10,-2,7,89] nums.sort() print(nums) 方案一:整体遍历效率太低 for num in nums: if num == find_num: print('find it') break 方案二:二分法 def binary_search(find_num,列表): mid_val=找列表中间的值 if find_num > mid_val: # 接下来的查找应该是在列表的右半部分 列表=列表切片右半部分 binary_search(find_num,列表) elif find_num < mid_val: # 接下来的查找应该是在列表的左半部分 列表=列表切片左半部分 binary_search(find_num,列表) else: print('find it') nums=[-3,4,7,10,13,21,43,77,89] find_num=8 def binary_search(find_num,l): print(l) if len(l) == 0: print(

hdu 3450 树状数组 + dp

余生颓废 提交于 2020-03-27 06:30:37
转自 http://www.cppblog.com/baby-fly/archive/2010/08/03/122027.aspx?opt=admin 很显然是动态规划。dp[i]表示前i个数有多少个有效的子序列。那么 dp[i]=dp[i-1]+A。 A是前面i-1个数中,与i的差值不超过d的以该数结尾的有效的子序列的个数 的和。我们可以用另外一个数组sub[i]表示以i结尾的有效的子序列的个数。 dp与sub的不同之处是dp中的子序列不一定是以第i个数结尾的。 sub[i]= sigma sub[k] ,( abs(numk],num[i])<=d )。 由于求sub的时间复杂度为O(n^2),而n太大,因此需要离散化后用树状数组。 树状数组求和是一段连续的,而sub要求和的是位于区间[num[i]-d,num[i]+d],所以要对num排序,这样就能把 [num[i]-d,num[i]+d]放到连续的区间中。 #include < iostream > #include < algorithm > using namespace std; #define mod 9901 const int maxn = 100010 ; struct node { int value,index; }num[maxn]; int dp[maxn],cnt[maxn],tree[maxn];

Problem B: 数量的类模板

有些话、适合烂在心里 提交于 2020-03-27 06:02:18
Description 定义一个类模板Data,用于包装C++中的基本数据类型int和double。它包括: 1. 数据成员value为该对象所包装的值。 2. 无参构造函数(初始化value为0)和带参构造函数。 3. 重载的运算符:>、<、+以及<<。其中"+"返回和,不改变两个操作数的值。 4. 成员函数setValue用于设置value的值。 定义另一个类模板GetResult,它只有3个 静态 成员函数(以下“T"为类型参数): 1. static Data<T> getSum(Data<T> *arr, int num):求存储在arr中的num个Data对象的和,并返回由这个和构成的一个Data对象。 2. static Data<T> getMax(Data<T> *arr, int num):求存储在arr中的num个Data对象的最大值,并返回这个最大值对应的对象。 3. static Data<T> getMin(Data<T> *arr, int num):求存储在arr中的num个Data对象的最小值,并返回这个最小值对应的对象。 Input 输入分多行。 第一行M>0表示有M个测试用例。 只有的M行,每行开始有一个字母i或d,第二个是正整数N>0。如果第一个字母是i,则表示本行包括N个int类型的数据;如果第一个字母为d