首页 文章 精选 留言 我的

精选列表

搜索[工具库],共10000篇文章
优秀的个人博客,低调大师

Docker集群工具SwarmKit

SwarmKit的默认执行器为Docker容器执行器(Docker Container Executor); 管理节点负责接收和响应用户的请求,将集群状态调节成最终状态。 用户可以动态调整节点的角色。任务被组合成为服务,服务定义了任务类型和任务运行和更新的方式(如任务运行数量、启动间隔等)。特性服务编排SwarmKit在服务编排方面的特性主要有:服务状态一致性:SwarmKit会不断对比服务期望状态和实际状态,发现二者不符时(如服务扩容、节点失效),SwarmKit会自动将服务中的任务调度到其他节点。 服务类型:目前SwarmKit支持两种服务类型 复制型服务(Replicated Services),针对这类服务SwarmKit会在节点上启动期望数量的副本; 全局服务(Global Services),这类服务SwarmKit会在所有可用几点上启动一个任务; 配置项升级:用户可以在任何时候修改服务的一个或多个配置。当配置被修改后,SwarmKit会协调升级服务中的所有任务,默认的升级策略是批量同时升级。目前支持的升级策略选项有: 并行度:定义并行更新的任务数量; 延迟:设置一组更新完成之后的最小等待时间。当配置升级时,SwarmKit会重启任务,并且等待任务状态为运行中,再等待配置的延迟后,继续执行后续的更新批次; 重启策略:用户可以定制重启的条件、延迟和最大尝试次数。SwarmKit会检测任务状态,并按照这些配置进行重启,同时SwarmKit会决定是否在不同节点启动任务,避免失效节点对服务产生影响。 调度SwarmKit在调度功能上功能有:资源感知:SwarmKit能够感知节点上的资源,并以此分配和执行任务。 资源约束:用户可以通过约束表达式,将任务约束到符合表达式的节点上。对节点的约束条件包括节点ID、名称和标签等。 调度策略:目前SwarmKit实现的调度策略是在满足约束条件的前提下,尽可能的分配到负载最低的节点。 集群管理SwarmKit对于集群及其节点的管理支持:状态存储:SwarmKit在内存中维护集群的状态,并能够在集群状态发生异常时迅速作出调整; 拓扑状态管理:SwarmKit支持通过API或者命令行动态修改节点角色; 节点管理:SwarmKit API支持用户修改节点状态。例如可以将节点状态设置为中止(Paused),以避免在该节点上创建新的任务;或者设置为枯竭(Drained)状态,除了禁止创建新任务外,当前节点上的其他任务也会被调度到其他节点上。 总结相比于之前的Swarm,SwarmKit使用更加方便,无需再依赖外部协调软件进行服务发现。同时对容器运行进行了抽象,API更加间接。SwarmKit特性和其他服务编排框架如mesos,kubernetes等比较类似,目前SwarmKit还在活跃开发中,能否攻城略地,让我们拭目以待吧。 本文转自d1net(转载)

优秀的个人博客,低调大师

Python标准(待续)

相识一场,记得顶我 集合操作 并集 >>> a = set([1,2,3]) >>> b = set([2,3,4]) >>> a.union(b) {1, 2, 3, 4} >>> a|b {1, 2, 3, 4} 交集 >>> a = set([1,2,3]) >>> b = set([2,3,4]) >>> a.intersection(b) {2, 3} >>> a&b {2, 3} 子集归属 >>> c = a&b >>> c.issubset(a) True >>> c<=b True >>> c<=a True >>> c>=a False 因为集合是可变的,但是集合本身包含的是不可变对象,所以以下代码会报错。 >>> a = set([1,2,3]) >>> b = set([2,3,4]) >>> a.add(b) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: 'set' 这时候我们需要使用frozenset类型,用于代表不可变的集合,它会创建一个副本对象加入到集合中。 >>> a.add(frozenset(b)) >>> a {1, 2, 3, frozenset({2, 3, 4})} 堆操作 堆是一种数据结构,它是优先队列的一种,它在查找方面比列表的效率要高得多。 heappush(heap,x) 入堆 heappop(heap) 出堆 heapify(heap) 把可迭代对象转换为堆 heapreplace(heap,x) 将堆中最小元素弹出,同时将x入堆 nlargest(n,iter) 找出可迭代对象中第n大元素 nsmallest(n,iter) 找出可迭代对象中第n小元素 >>> from heapq import * >>> from random import shuffle >>> data = range(10) >>> shuffle(data) >>> heap = [] >>> for n in data: heappush(heap,n) >>> heap [0, 2, 1, 3, 5, 7, 4, 6, 9, 8] >>> heappop(heap) 0 >>> heappop(heap) 1 >>> heappop(heap) 2 >>> heappop(heap) 3 >>> heap [4, 5, 7, 6, 9, 8] ----------------------------------------- >>> heap = [9,7,2,4,5,6,2,3,1] >>> heapify(heap) >>> heap [1, 3, 2, 4, 5, 6, 2, 7, 9] ----------------------------------------- >>> heapreplace(heap,0.5) 1 >>> heap [0.5, 3, 2, 4, 5, 6, 2, 7, 9] 从上述代码运行的结果可以看出,这是一个小根堆的排序算法---位于i位置上的元素总比i/2位置处的元素大,反过来也就是i位置处的元素总比2i和2i+1位置处的元素小。 双端队列 >>> from collections import deque >>> q = deque(range(5)) >>> q.append(5) >>> q.appendleft(6) >>> q deque([6, 0, 1, 2, 3, 4, 5]) >>> q.pop() 5 >>> q.popleft() 6 >>> q deque([0, 1, 2, 3, 4]) >>> q.rotate(2) >>> q deque([3, 4, 0, 1, 2]) >>> q.extend([3,4]) >>> q deque([3, 4, 0, 1, 2, 3, 4]) >>> q.extendleft([2,1]) >>> q deque([1, 2, 3, 4, 0, 1, 2, 3, 4]) 从上述代码可以看出双端队列的好处在于它可以在列表的两端进行操作和旋转列表。 time 可以使用实数表示,也可以使用包含9个整数的元组表示。如果使用元组表示,那这些整数的意义如下: (2018,1,21,10,28,30,2,21,0) 表示2018年1月21日,10时28分30秒,星期3,当天为当年的第21天,(无夏令时) asctime([tuple]) 将时间元组转换为字符串 localtime([secs])将秒数转换为日期元组,以本地时间为准 mktime(tuple)将时间元组转换为本地元组 sleep(secs)休眠 strptime(string[,format])将字符串解析为时间元组 time()当前时间 'Wed Jul 11 10:02:04 2018' random random() 返回0<n<=1之间的随机实数n getrandbits(n) 以长整型形式返回n个随机位 (加密有用) uniform(a,b) 返回随机实数n,其中a<=n<b,(a,b)之间的均匀分布 randrange([start],stop,[step]) 返回range(start,stop,step)中的实数 choice(seq)从序列seq中返回随意元素 shuffle(seq[,random])原地指定序列 seqsample(seq,n) 从序列seq中选择n个随机且独立的元素 re re模块是一个正则表达式的模块 compile(pattern[,flags]) 根据包含正则表达式的字符串创建模式对象 search(pattern, string[,flags])在字符串中寻找模式 match(pattern,string[,flags]) 在字符串的开始处匹配模式 split(pattern,string[,maxsplit=0])根据模式的匹配来分割字符串 findall(pattern,string) 列出字符串中模式的所有匹配项 sub(pat,repl,string[,count=0])将字符串中所有pat的匹配项用repl替换 escape(string) 将字符串中所有特殊正则表达式字符转义 用任意长度的逗号和空格序列来分割字符串 some_text = 'alpha,beta,,,,gamma delta' re.split('[, ]+',some_text) ['alpha', 'beta', 'gamma', 'delta']

优秀的个人博客,低调大师

NLP 研究灵感

目录 NLP 中任务无关的数据增强 NLP 中的少量学习 NLP 中的迁移学习 多任务学习 跨语言学习 任务无关的架构优化 当你开始进入新的研究领域时,很难找到有价值的选题,也很难知道哪些问题是有趣的。如今,机器学习研究进展如此之快,就更难找到新的选题了。 写这篇文章是为初级研究人员或希望从事研究工作的人员提供灵感和研究方向。文章中收集了我认为有趣的研究课题,主要关注 NLP 和迁移学习。当然,这些课题可能并不是所有人都感兴趣。如果你对强化学习感兴趣,OpenAI 提供了一系列有趣的以强化学习为中心的研究课题。如果你想与他人合作或对更广泛的课题感兴趣,不妨看看人工智能开放网络。 大多数选题还没有被研究过;在很多情况下,概况描述都是非常模糊和主观的,许多方向都充满着可能性。另外,这些课题并不是唾手可得的,要给出解决方案的话需要付出很大的努力。我很高兴

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册