• 浅谈深度学习:如何计算模型以及中间变量的显存占用大小

    前言

    亲,显存炸了,你的显卡快冒烟了!

    torch.FatalError: cuda runtime error (2) : out of memory at /opt/conda/conda-bld/pytorch_1524590031827/work/aten/src/THC/generic/THCStorage.cu:58

    想必这是所有炼丹师们最不想看到的错误,没有之一。

    OUT OF MEMORY,显然是显存装不下你那么多的模型权重还有中间变量,然后程序奔溃了。怎么办,其实办法有很多,及时清空中间变量,优化代码,减少batch,等等等等,都能够减少显存溢出的风险。

    但是这篇要说的是上面这一切优化操作的基础,如何去计算我们所使用的显存。学会如何计算出来我们设计的模型以及中间变量所占显存的大小,想必知道了这一点,我们对自己显存也就会得心应手了。

    本文转载自:Oldpan的个人博客
    浅谈深度学习:如何计算模型以及中间变量的显存占用大小(https://oldpan.me/archives/how-to-calculate-gpu-memory)

    (更多…)

  • ASRT:一个中文语音识别系统

    ASRT是一套基于深度学习实现的语音识别系统,全称为Auto Speech Recognition Tool,由AI柠檬博主开发并在GitHub上开源(GPL 3.0协议)。本项目声学模型通过采用卷积神经网络(CNN)和连接性时序分类(CTC)方法,使用大量中文语音数据集进行训练,将声音转录为中文拼音,并通过语言模型,将拼音序列转换为中文文本。算法模型在测试集上已经获得了80%的正确率。基于该模型,在Windows平台上实现了一个基于ASRT的语音识别应用软件,取得了较好应用效果。这个应用软件包含Windows 10 UWP商店应用和Windows 版.Net平台桌面应用,也一起开源在GitHub上了。

    (更多…)

  • 邮件礼仪

    写好一封电子邮件不是一件随意的事情,即使它很简单。很多人不注意这方面的问题,类似于见字如见人,一封规范有礼仪的电邮能够给自己争得一个较好的第一印象。写电子邮件我们需要注意邮件的礼仪问题,本文我们来探讨一下,写电子邮件我们要注意哪些问题,如何写一封符合邮件规范和礼仪的电子邮件。

    (更多…)

  • 如何使用GitHub

    我们作为天天搞计算机的,应该都听说过GitHub吧,不过可能很多人并不知道它可以用来做什么和怎么使用,今天,我将在这里做一个入门教学,希望大家人人都会用GitHub,都能用好GitHub。

    (更多…)

  • 关联分析:关联规则挖掘应用实例

    在上一篇文章中,我们主要是写到了关联分析的概念和一些挖掘算法的原理,在本篇文章中我们将以一个应用实例来简介一下挖掘算法是怎么实现和起作用的。我们以一次美国国会投票记录作为案例,使用Apriori算法,支持度设为30%,置信度为90%,挖掘出高置信度的规则。

    (更多…)

  • 关联分析:关联规则挖掘算法

    关联规则挖掘是数据挖掘领域中的一个非常重要的研究内容,其主要目标就是发现数据库中一组对象之间某种有意义的联系,所发现的联系可用关联规则或频繁项集来表示。频繁集的挖掘是关联规则挖掘的关键步骤,它在很大程度上决定了关联规则挖掘的效率。本文将介绍关联规则挖掘的算法,并使用例子来实际演示如何进行关联规则的挖掘。

    (更多…)

  • 文因互联 CEO 鲍捷:确保搞砸人工智能项目的十种方法

    本文转载自机器之心

    做成一件事儿不容易,而坑恒在。

    鲍捷博士于5月10日在将门创投的线上 talk 中盘点了人工智能项目的大坑小坑,选出了看上去非常反常识的十个经典坑

    这是一篇大实话合集,但别绝望,最后将会放出从二十年踩坑经验中总结出的彩蛋,共勉。

    (更多…)

  • 地图路由问题算法——Dijkstra算法

    Dijkstra最短路径算法是图论中最经典的算法之一,这种算法广泛应用于地理信息系统(GIS),包括MapQuest和基于GPS的汽车导航系统。本文中将针对该问题,实现经典的Dijkstra最短路径算法,并对其进行优化。

    (更多…)

  • 渗漏问题算法

    给定由随机分布的绝缘材料和金属材料构成的组合系统:金属材料占多大比例才能使组合系统成为电导体?给定一个表面有水的多孔景观(或下面有油),水将在什么条件下能够通过底部排出(或油渗透到表面)?科学家们已经定义了一个称为渗透(percolation)的抽象过程来模拟这种情况。

    (更多…)

  • 机器学习:数据集的划分

    我们都知道,机器学习需要大量的数据来训练模型,尤其是训练神经网络。在进行机器学习时,数据集一般会被划分为训练集和测试集,很多时候还会划分出验证集(个别人称之为开发集)。但是很多新手,尤其是刚刚接触到机器学习的人,往往对数据集的划分没有概念,甚至有的人把训练后得到的模型在训练数据上取得的正确率当做是实际正确率来说了,然后各种被怼。有人在答辩时说自己训练的模型正确率100%,在座的老师面面相觑,最后结果可想而知。所以我们需要搞清楚数据集的划分,以及训练集、验证集和测试集的区别和作用。

    (更多…)