epoch

批量梯度下降(BGD)、随机梯度下降(SGD)以及小批量梯度下降(MBGD)的理解

谁都会走 提交于 2021-02-16 11:20:56
  梯度下降法作为机器学习中较常使用的优化算法,其有着三种不同的形式: 批量梯度下降(Batch Gradient Descent)、随机梯度下降(Stochastic Gradient Descent)以及小批量梯度下降(Mini-Batch Gradient Descent) 。其中小批量梯度下降法也常用在深度学习中进行模型的训练。接下来,我们将对这三种不同的梯度下降法进行理解。   为了便于理解,这里我们将使用只含有 一个特征 的线性回归来展开。此时线性回归的 假设函数 为: $$ h_{\theta} (x^{(i)})=\theta_1 x^{(i)}+\theta_0 $$   其中 $ i=1,2,...,m $ 表示样本数。   对应的**目标函数(代价函数)**即为: $$ J(\theta_0, \theta_1) = \frac{1}{2m} \sum_{i=1}^{m}(h_{\theta}(x^{(i)}) - y^{(i)})^2 $$   下图为 $ J(\theta_0,\theta_1) $ 与参数 $ \theta_0,\theta_1 $ 的关系的图: <div align="center"> ![](https://images2018.cnblogs.com/blog/1238724/201808/1238724

博采众长穿梭时空|Maya库使用笔记

徘徊边缘 提交于 2021-02-16 09:36:04
Maya简介 用time、datetime等内置库处理时区需要挺多的代码,而且写法很不优雅,Maya是一个不错的第三方时间库,在pytz、pendulum等库基础上增强了对时区的处理。 Maya的时间对象是自定义的MayaDT对象,是按时间戳表示的,因此在时区问题上更容易进行转换了。从功能上看,Maya的时间创建能力上排名前列,在时间偏移和属性获取上方面接口也挺简洁,综合来看是不错的Python时间库,在GitHub [1] 上目前有3.2k的star。 Maya库功能概览导图 时间输入与转换 Maya提供了丰富的接口用于从各种数据中解析出时间对象,既有简约的 from_datetime() 把datetime对象转为MayaDT时间对象,也有强大的 when() 和 parse() 从字符串中解析时间要素。一些示例代码如下。 import maya maya.parse( '2020-12-08T03:15' ) #字符串转maya时间对象 #Out[]:<MayaDT epoch=1607397346.636102> maya.when( '1011-02-07' ) #因为是用的epoch,小于1970年是负数 #<MayaDT epoch=-30259958400.0> dt=maya.now() #获取当前时间 maya.when( 'tomorrow' )

深度学习检测视频马赛克

大憨熊 提交于 2021-02-16 03:43:56
数据集二分类 第一类1000张, 第二类600张 1. darknet + resnet50 Loss,训练出来测试的时候是NULL, 暂时不知道为什么, 将CUDA-10.0 换成 cuda-8.0 依然显示不出label Loss 也是3.8 2. darknet + alexnet Loss = 3.8 , 3. keras + inceptionV3   1.) OpenCV4.0 调用失败, 提示FusedBatchNorm is_learning = True   2) https://github.com/opencv/opencv/issues/14236 修改代码,修复bug后,出现下面bug DataType = DT_BOOL 不被识别      3) 需要更新到最新版的opencv 4. keras + inception_resnetV2 同上 6. tensorflow + slim + inceptionV4 验证集准确率90%以上 , 但是OpenCV4.0 调用失败, slim 居然把DecodeJpeg层都加到 pb模型里去了, 暂时不知道怎么修改模型   1) 修改为 opencv 报错 :   2)修改为     opencv ---in 'Mul'   3) 修改为     opencv --- 错误同上 4) modify as call

10个算法从业人员必须知道的TensorFlow技巧

独自空忆成欢 提交于 2021-02-15 05:05:46
点击上方“AI公园”,关注公众号,选择加“星标“或“置顶” 作者: Rohan Jag tap 编译:ronghuaiyang 导读 掌握这些可以更高效的模型的提高开发效率。 TensorFlow 2.x在构建模型和TensorFlow的整体使用方面提供了很多简单性。那么TF2有什么新变化呢? 使用Keras轻松构建模型,立即执行。 可在任何平台上进行强大的模型部署。 强大的研究实验。 通过清理过时的API和减少重复来简化API。 在本文中,我们将探索TF 2.0的10个特性,这些特性使得使用TensorFlow更加顺畅,减少了代码行数并提高了效率。 1(a). tf.data 构建输入管道 tf.data提供了数据管道和相关操作的功能。我们可以建立管道,映射预处理函数,洗牌或批处理数据集等等。 从tensors构建管道 >>> dataset = tf.data.Dataset.from_tensor_slices([ 8 , 3 , 0 , 8 , 2 , 1 ]) >>> iter(dataset).next().numpy() 8 构建Batch并打乱 # Shuffle >>> dataset = tf.data.Dataset.from_tensor_slices([ 8 , 3 , 0 , 8 , 2 , 1 ]).shuffle( 6 ) >>> iter

Hadoop NameNode 高可用 (High Availability) 实现解析[转]

一曲冷凌霜 提交于 2021-02-14 04:08:09
NameNode 高可用整体架构概述 在 Hadoop 1.0 时代,Hadoop 的两大核心组件 HDFS NameNode 和 JobTracker 都存在着单点问题,这其中以 NameNode 的单点问题尤为严重。因为 NameNode 保存了整个 HDFS 的元数据信息,一旦 NameNode 挂掉,整个 HDFS 就无法访问,同时 Hadoop 生态系统中依赖于 HDFS 的各个组件,包括 MapReduce、Hive、Pig 以及 HBase 等也都无法正常工作,并且重新启动 NameNode 和进行数据恢复的过程也会比较耗时。这些问题在给 Hadoop 的使用者带来困扰的同时,也极大地限制了 Hadoop 的使用场景,使得 Hadoop 在很长的时间内仅能用作离线存储和离线计算,无法应用到对可用性和数据一致性要求很高的在线应用场景中。 所幸的是,在 Hadoop2.0 中,HDFS NameNode 和 YARN ResourceManger(JobTracker 在 2.0 中已经被整合到 YARN ResourceManger 之中) 的单点问题都得到了解决,经过多个版本的迭代和发展,目前已经能用于生产环境。HDFS NameNode 和 YARN ResourceManger 的高可用 (High Availability,HA) 方案基本类似

[CVPR2017] Deep Self-Taught Learning for Weakly Supervised Object Localization 论文笔记

断了今生、忘了曾经 提交于 2021-02-13 10:54:54
http://openaccess.thecvf.com/content_cvpr_2017/papers/Jie_Deep_Self-Taught_Learning_CVPR_2017_paper.pdf Deep Self-Taught Learning for Weakly Supervised Object Localization. Zequn Jie, Yunchao Wei, Xiaojie Jin, Jiashi Feng, Wei Liu 亮点 监督学习中用难例挖掘,弱监督中靠可靠样本的挖掘,本文筛选可靠样本的方法比较具有通用性 在线样本收集,通过relative improvement指标,不断提升弱监督驯练样本的质量 本文是少数未采用预计算好的proposal,而采取自适应proposal的文章,可以根据网络训练情况来改变proposal 主要思想 问题 :大多数现有的弱监督定位(WSL)方法通过对图像级别的监督学习识别到的特征区块来进行探测器的学习。然而,这些特征不包含空间位置的相关信息,同时对探测器的学习来说,其所提供的样本数据质量都比较差。 解决方案 :检测器学习获取可靠的样本对象特征并以此为基础重新训练自己。相应的,随着探测器本身检测能力的提高和提供的位置信息质量的提高,于是便能进一步的提高较好质量的数据。 文中提出了一个种子样本采集(Seed

面试:Zookeeper常见11个连环炮

試著忘記壹切 提交于 2021-02-12 13:03:04
面试的时候,面试官只要看到你简历的上写的有Zookeeper(熟悉、掌握)之类,那你至少要准备接下来的11连问。 NO1:说说zookeeper是什么? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现(Chubby是不开源的),它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户 。 Zookeeper一个最常用的使用场景就是用于担任服务生产者和服务消费者的注册中心,服务生产者将自己提供的服务注册到Zookeeper中心,服务的消费者在进行服务调用的时候先到Zookeeper中查找服务,获取到服务生产者的详细信息之后,再去调用服务生产者的内容与数据,简单示例图如下: NO2:了解Zookeeper的系统架构吗? Zoo Keeper 的架构图中我们需要了解和掌握的主要有: (1)ZooKeeper分为服务器端(Server) 和客户端(Client),客户端可以连接到整个 ZooKeeper服务的任意服务器上(除非 leaderServes 参数被显式设置, leader 不允许接受客户端连接)。 (2)客户端使用并维护一个 TCP 连接,通过这个连接发送请求、接受响应、获取观察的事件以及发送心跳。如果这个 TCP 连接中断

tensorflow 模型权重导出

亡梦爱人 提交于 2021-02-11 02:35:28
tensorflow在保存权重模型时多使用tf.train.Saver().save 函数进行权重保存,保存的ckpt文件无法直接打开,不利于将模型权重导入到其他框架使用(如Caffe、Keras等)。 好在tensorflow提供了相关函数 tf.train.NewCheckpointReader 可以对ckpt文件进行权重查看,因此可以通过该函数进行数据导出。 1 import tensorflow as tf 2 import h5py 3 4 cpktLogFileName = r ' ./checkpoint/checkpoint ' # cpkt 文件路径 5 with open(cpktLogFileName, ' r ' ) as f: 6 # 权重节点往往会保留多个epoch的数据,此处获取最后的权重数据 7 cpktFileName = f.readline().split( ' " ' )[1 ] 8 9 h5FileName = r ' ./model/net_classification.h5 ' 10 11 reader = tf.train.NewCheckpointReader(cpktFileName) 12 f = h5py.File(h5FileName, ' w ' ) 13 t_g = None 14 for key in sorted

[NLP-CNN] Convolutional Neural Networks for Sentence Classification -2014-EMNLP

蹲街弑〆低调 提交于 2021-02-08 14:52:08
1. Overview 本文将CNN用于句子分类任务 (1) 使用静态vector + CNN即可取得很好的效果;=> 这表明预训练的vector是universal的特征提取器,可以被用于多种分类任务中。 (2) 根据特定任务进行fine-tuning 的vector + CNN 取得了更好的效果。 (3) 改进模型架构,使得可以使用 task-specific 和 static 的vector。 (4) 在7项任务中的4项取得了SOTA的效果。 思考:卷积神经网络的核心思想是捕获局部特征。在图像领域,由于图像本身具有局部相关性,因此,CNN是一个较为适用的特征提取器。在NLP中,可以将一段文本n-gram看做一个有相近特征的片段——窗口,因而希望通过CNN来捕获这个滑动窗口内的局部特征。卷积神经网络的优势在于可以对这样的n-gram特征进行组合和筛选,获取不同的抽象层次的语义信息。 2. Model 对于该模型,主要注意三点: 1. 如何应用的CNN,即在文本中如何使用CNN 2. 如何将static和fine-tuned vector结合在一个架构中 3. 正则化的策略 本文的思路是比较简单的。 2.1 CNN的应用 <1> feature map 的获取 word vector 是k维,sentence length = n (padded)

Moment.js , Invalid date time when converting epochtime

╄→尐↘猪︶ㄣ 提交于 2021-02-08 09:30:17
问题 I have following code to convert epochtime to dateTime. var newDate = moment.unix(1525168800000).format("MM/DD/YYYY"); alert(newDate); When I check the time stamp at epochtimeconvetrer, I get back the correct time, GMT: Tuesday, May 1, 2018 10:00:00 AM But when I try to get the same value by parsing with moment, getting invalid date , 09/05/50300 http://jsfiddle.net/yLc4wops/1/ 回答1: Unix time is seconds from epoch . What you're passing is milliseconds from epoch . Divide the value by 1000,