我是tensorflow和Machine Learning的新手。最近,我正在制作模型。我的模特如下
字符级嵌入向量->嵌入查找-> LSTM1
字级嵌入向量->嵌入查找-> LSTM2
[LSTM1 + LSTM2]->单层MLP-> softmax层
[LSTM1 + LSTM2]->单层MLP-> WGAN鉴别器
他的模型代码
当我使用此模型时,出现以下错误。我以为我的批次太大了。因此,我试图将批量大小从20减少到10,但这是行不通的。
ResourceExhaustedError(请参见上面的回溯):分配具有形状的张量时为OOM [24760,100] [[节点:chars /
bidirectional_rnn / bw / bw / while / bw / lstm_cell / split = Split [T =
DT_FLOAT,num_split = 4,_device =“ / job:localhost / replica:0 / task:0 /
device:GPU:0”](gradients_2 / Add_3 / y,chars / bidirectional_rnn / bw / bw /
while / bw / lstm_cell / BiasAdd)]] [[节点:bi-lstm / bidirectional_rnn / bw /
bw / stack / _167 = _Recvclient_terminated = false,recv_device =“ /
job:localhost / replica:0 / task:0 / device:CPU:0”,send_device =“ /
job:localhost /副本:0 /任务:0 /设备:GPU:0“,send_device_incarnation = 1,tensor_name
=” edge_636_bi-lstm / bidirectional_rnn / bw / bw / stack“,tensor_type =
DT_INT32,_device =” / job:本地主机/副本:0 / task:0 / device:CPU:0“]]
形状为[24760,100]的 张量表示2476000 * 32/8 * 1024 * 1024 = 9.44519043
MB内存。我在titan X(11 GB)GPU上运行代码。可能出什么问题了?为什么会发生此类错误?
额外信息 :LSTM1的大小为100。对于双向LSTM,大小为200。LSTM2的大小为300。对于双向LSTM,大小为600。
注意 :错误发生在32个时代之后。我的问题是,为什么在32个时代之后出现错误。为什么不在最初的时代。
这些天,我已经做了很多调整以解决此问题。
最后,我还没有解决问题中描述的内存大小之谜。我想在计算梯度时,tensoflow会积累大量用于计算梯度的额外内存。我需要检查这个时候看起来很麻烦的张量流的来源。您可以通过以下命令从终端检查模型使用了多少内存,
nvidia-smi
从此命令判断,您可以猜测可以使用多少额外的内存。
但是解决这类问题的方法在于减小批量大小,
就我而言,将批处理的大小减少到3个作品。这可能因模型而异。
但是,如果您使用的模型中的嵌入矩阵大得多而无法将其加载到内存中,该怎么办?
解决方案是编写一些痛苦的代码。
您必须查找嵌入矩阵,然后将嵌入加载到模型。简而言之,对于每一批,您都必须将查找矩阵提供给模型(通过中的feed_dict参数提供它们sess.run()
)。
接下来,您将面临一个新问题,
您不能trainable
以这种方式进行嵌入。解决方案是使用嵌入到中,placeholder
然后将它们分配给Variable
(例如A
)。在每批训练之后,学习算法都会更新变量A
。然后通过张量流计算A
向量的输出,并将它们分配给模型外部的嵌入矩阵。(我说这个过程很痛苦)
现在,您的下一个问题应该是,如果因为嵌入查找太大而无法将嵌入查找提供给模型,该怎么办。这是您无法避免的基本问题。这就是为什么NVIDIA GTX
1080、1080ti和NVIDA TITAN Xp具有如此高的价格差异的原因,尽管NVIDIA 1080ti和1080具有更高的执行频率。
QA职责 QA起到监督项目执行进度、监控项目质量的重要责任; QA辅助项目经理,推进项目开发; QA向公司的QA部门负责人汇报; QA需了解项目的所有需求; QA人员,同时承担项目上的开发工作,开发与项目保障并进。 对于目前的状况,QA的规划有如下特点: QA不作为公司的一个单独部门,而是由分散到每个项目的指定开发人员临时担任; QA是培养项目经理的重要岗位 QA工作内容 每天的进度反馈(从用户视
培训大纲 内容分类 培训内容 掌握程度 理论学习 应用交互设计历史及趋势 熟悉设计历史及趋势 设计理论 熟悉常见的产品设计理论 设计心理学 熟悉常见的设计心理 设计实践 行业产品设计规范及设计 熟练设计产品设计规范及UI界面 基础UI库设计 基本了解基础UI库设计 创新产品设计 基本了解创新产品设计流程 文档能力 UI库设计文档 熟练制作UI库设计文档 设计规范文档 熟练编制设计规范 系统能力 带
培训大纲 内容分类 培训内容 掌握程度 工具学习 性能优化工具 分析并优化后端性能,如JProfiler等 后端监控 性能监控如Skywalking,日志健康和分析如ELK,服务监控如Zabbix 调试工具 本地调试、远程调试、抓包分析等,主要基于IDEA 理论学习 设计模式 熟练应用各类基本设计模式,提高代码可读性和扩展性 JVM性能优化 基本了解JVM调优相关知识,掌握基本的JVM调优配置 数
培训大纲 内容分类 培训内容 掌握程度 工具学习 体验优化工具 优化前端交互体验,Chrome Dev-Tools,npm report等 前端异常监控 持续监控前端生产运行状况,Sentry等 调试工具 本地调试、远程调试、App调试、抓包分析等,如Fiddler等 理论学习 设计模式 熟练应用各类基本设计模式,提高代码可读性和扩展性 HTTP权威指南 熟练掌握http的相关知识 前端技术发展历
两周培训规划 基础培训及考核-2d 代码规范培训-4h Linux基础-20h 工具培训及考核-6d gulp-4h webpack-4h postman-4h webstorm-4h git-8h gitlab-4h npm-4h bower-4h Lo-Dash-8h Chrome-dev-tool-4h Swagger-4h Graphql-4h SecureCRT-2h gitbook/m
DevOps培训认证可以帮助任何渴望成为DevOps工程师职业的人。认证可从亚马逊网络服务,红帽,微软学院,DevOps Institute获得。 下面我们将一个一个地来了解他们 - AWS认证DevOps工程师 此DevOps工程师证书将测试如何使用最常见的DevOps模式在AWS上开发,部署和维护应用程序。它还会评估DevOps方法的核心原则。 该认证有两个必要条件。认证费用为美元,持续时间为