-
tensorflow-session官方文档 说下我自己的理解: session中文一般叫会话,可以理解成op执行时候需要的一层虚拟化的封装。 op必须在session中才能执行。 tensor也是在tensor中才可以存在(tf.variable和tensor几乎是一回事,只是tf.variable的会话不要求session,也可以理解成tf.variable在session中就成了tensor. 需要注意的是session一般会占据资源,所以在使用完记得释放,或者写成with的形式(看到with总想叫成开域语句...感觉暴露年龄orz 下面这两种形式是等价的: # Using the `close()` method. sess …
Read More -
请实现最近最少使用缓存(Least Recently Used (LRU) cache)类,需要支持 get, set,操作。 get 操作,给出 key,获取到相应的 value (value 为非负数),如果不存在返回-1, 如果存在此 key 算作被访问过。 set 操作,设置 key,如果 key 存在则覆盖之前的 value (此时相当于访问过一次)。 如果 key 不存在,需要进行插入操作,如果此时已经 key 的数量已经到达 capacity, 这样需要淘汰掉最近最少使用(也就是上次被使用的时间距离现在最久的)的那 一项。 要求get和set的时间复杂度都是O(1) /* …
Read More -
list = os.listdir(rootdir)#列出目录下的所有文件和目录 for line in list: filepath = os.path.join(rootdir,line) if os.path.isdir(filepath):#如果filepath是目录 print "dir:" + filepath else: print "file:" + filepath 如果需要遍历文件夹下的所以文件,可以使用os.walk()方法。 os.walk()返回一个三元素的tuple:当前路径、子文件夹名称、文件列表。 import os for root, dirs, files …
Read More -
是在使用分布式tensorflow遇到的一个错误 报错如下: InvalidArgumentError (see above for traceback): Cannot assign a device for operation 'save/Rest│| 2 GeForce GTX 1080 On | 0000:08:00.0 Off | N/A | oreV2_888': Operation was explicitly assigned to /job:worker/task:0/device:CPU:0 but available │| 24% 39C P8 12W / 180W | 0MiB / 8114MiB | 0% …
Read More -
随便记录一下面试中遇到的问题: 梯度下降和牛顿迭代的区别?为什么常用梯度下降? **牛顿法是二阶收敛,梯度下降是一阶收敛,所以牛顿法就更快**。如果更通俗地说的话,比如你想找一条最短的路径走到一个盆地的最底部,梯度下降法每次只从你当前所处位置选一个坡度最大的方向走一步,牛顿法在选择方向时,不仅会考虑坡度是否够大,还会考虑你走了一步之后,坡度是否会变得更大。所以,可以说牛顿法比梯度下降法看得更远一点,能更快地走到最底部。 根据wiki上的解释,从几何上说,牛顿法就是用一个二次曲面去拟合你当前所处位置的局部曲面,而梯度下降法是用一个平面去拟合当前的局部曲面,通常情况下,二次曲面的拟合会比平面更好,所以牛顿法选择的下降路径会更符合真实的最 …
Read More -
感觉资料不是很多,先收集资料好了。 tf-distributed官网文档 SO-between-graph和in-graph的区别 inception.README.md SyncReplicasOptimizer SO_How does ps work in distribute Tensorflow? update:在多个nodes(机)上跑。。。tf默认是异步更新的。。。同步的话。。大概需要syncreplicasoptimizer? 来直观感受下,不同task的之间并不同步 创建一个cluster 每一个task唯一对应一个server,server中有一个master,还有若干个worker cluster是task的集 …
Read More -
update:supervisor的缺点是遇到问题只会抛异常,所以现在有一个better的管理工具,MonitoredSession master,chief worker,Supervisor 这几个概念有点搞不清(我最菜.jpg 因此来学习一下。 概述 原生的tensorflow 是各种东西都需要自己手动,如果是小规模的训练问题倒是不大,但是如果是训练的数据量比较大,可能需要训练几天或者几个月。。。 那原生的tensorflow的健壮性可能就比较堪忧。。。 万一断电了之类。。。 这时候我们就可以使用supervisor 其主要提供下面三个功能,以增强训练的健壮性: * Handles shutdowns and crashes …
Read More -
其实这算法巨简单。。。。让我想到了均分纸牌(noip200? 还是大致说一下: 对于有 features 但是 **没有 **labels 的数据,没办法用监督学习,但是可以使用非监督学习的聚类算法。 所谓聚类,简单理解,就是把相似的分成一组。。。 k-means就是一个常见的聚类算法。。。 k代表可以把数据分成k组。 举一个平面上二维点的例子,算法步骤如下: 1. 随机k个点当做k个点作为k组的中心。 2. 根据现在的k个中心,将数据集中的点,按照【距离哪个中心最近就属于哪个中心】的原则,分组。 3. 在每一个组内求点的二维平均数,作为新的中心。**如果存在一个组的数据中心改变,那么返回2,否则结 …
Read More -
Adding a New Op * [目录](https://www.tensorflow.org/extend/adding_an_op#top_of_page) * [定义运算的接口](https://www.tensorflow.org/extend/adding_an_op#define_the_ops_interface) * [实现运算的核心部分(kernels)](https://www.tensorflow.org/extend/adding_an_op#implement_the_kernel_for_the_op) * [多线程cpu …
Read More -
昨天pinduoduo笔试遇到了,看心情蒙的2333,来学习一下 ** 峰度(Kurtosis)和偏度(Skewness)** 重点:正太分布的峰度和偏度都是0 峰度是描述总体中所有取值分布形态陡缓程度的统计量。这个统计量需要与正态分布相比较,峰度为0表示该总体数据分布与正态分布的陡缓程度相同;峰度大于0表示该总体数据分布与正态分布相比较为陡峭,为尖顶峰;峰度小于0表示该总体数据分布与正态分布相比较为平坦,为平顶峰。峰度的绝对值数值越大表示其分布形态的陡缓程度与正态分布的差异程度越大。 峰度的具体计算公式为: …
Read More