Naive


  • 首页

  • 归档

  • 标签

使用docker配置深度学习环境

发表于 2017-11-12

之前一直用着原生系统搭建起来的环境,用着还算稳定,不过偶尔也会遇到一些困扰。比如tf,pytorch这类框架的API不是很稳定,版本更新后老的代码用不了。有时候跑别人的程序需要切换对应的版本。
在师弟的安利下尝试了一下用docker来运行深度学习环境。
之前用过几次,但是对docker的了解较少,稍微做了一点功课,Docker — 从入门到实践。
这里略过le docker的安装,详见docker的官方文档。

安装nvidia-docker

对于深度学习开发环境来说,CUDA环境是至关重要的,要在docker中训练模型,首先得要能够在docker中运行CUDA,nvidia官方给出了解决方案————nvidia-docker。

阅读全文 »

Python源码剖析笔记——Dict对象

发表于 2017-10-22

在Python中提供了关联式容器dict,它类似于map;由于对搜索的效率要求非常高,python中的dict使用哈希表来实现的,在理想情况下搜索的复杂度为O(1)。

阅读全文 »

logistic与softmax的梯度计算

发表于 2017-09-14

在多分类和神经网络中softmax的使用非常普遍,由于实践中基本都是直接使用库和框架中封装好的接口,一直没有去思考过softmax的梯度计算。
顺便复习下logistic。

1. 逻辑回归的梯度计算

1.1 逻辑回归的cost

$$ J(\theta) = \frac{1}{m}\sum_{i=1}^{m}\left[y^{i}\,log\, h(x^{i})\ +\ (1\ -\ y^{i})\,log\,(1\ -\ h(x^{i}))\right] $$
由于逻辑回归中使用了非线性的sigmoid函数,为了保持目标函数为凸函数,该目标函数与线性回归有所不同。

阅读全文 »

记cx_Oracle读写中文的编码问题

发表于 2017-08-24

由于要读取Oracle的表结构,在前端页面生成脚本中用到了cx_Oracle,之前在linux上写好的代码,用了几个月都很正常。最近在mac下却出现了编码问题,读取的中文都变为了问号?????.
一阵谷歌之后找打的答案都是设置环境变量NLS_LANG,然而我原先代码里就已经配置了环境变量的,极度蒙圈…
最后在cx_Oracle文档中找到了原因.
在Version 6.0 的 Release Notes中有这样一条:

Delay initialization of the ODPI-C library until the first standalone connection or session pool is created so that manipulation of the environment variable NLS_LANG can be performed after the module has been imported; this also has the added benefit of reducing the number of errors that can take place when the module is imported.

也就是说在这之前的版本中设置NLS_LANG和import是有先后顺序的差别的。
赶紧print下cx_Oracle.__version__, 发现是6.0b2, 确实是这个问题,因为习惯性把import写在头部的。

1
2
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
import cx_Oracle

调整先后顺序后,中文编码就正常了。
而之前在linux上运行都正常,原因可能是linux上装的版本反而是新的,由于是使用conda自动安装的,安装时并没有去关注版本号。

2017网易校招编程题-笔记

发表于 2017-08-12

对网易有一种莫名的执着,然而感觉这次笔试又跪了

1. 独立的小易

小易为了向他的父母表现他已经长大独立了,他决定搬出去自己居住一段时间。一个人生活增加了许多花费: 小易每天必须吃一个水果并且需要每天支付x元的房屋租金。当前小易手中已经有f个水果和d元钱,小易也能去商店购买一些水果,商店每个水果售卖p元。小易为了表现他独立生活的能力,希望能独立生活的时间越长越好,小易希望你来帮他计算一下他最多能独立生活多少天。
输入描述:
输入包括一行,四个整数x, f, d, p(1 ≤ x,f,d,p ≤ 2 * 10^9),以空格分割
输出描述:
输出一个整数, 表示小易最多能独立生活多少天。

难得遇到一个送分题…

阅读全文 »

[译]Keras Tutorial - Spoken Language Understanding

发表于 2017-06-24

原文地址
该文章主要关于RNN来实现槽填充,比较基础的读物,这里只做粗略的翻译,一些细节还请看原文。
原作者提供了Keras实现,近期自己打算用Pytorch重写一个版本。
按照原文重写的Pytorch版本,代码写的并不好,主要是当做练习来写的,实验结果基本和原文的一致。

阅读全文 »

Python源码剖析笔记——List对象

发表于 2017-05-18

PyListObject对象

PyListObject是一个变长对象,也是可变对象,可以有效的支持对元素的插入、添加、删除等操作。

阅读全文 »

Python源码剖析笔记——字符串对象

发表于 2017-05-12

PyStringObject

PyStringObject是字符串对象的实现。它是一个边长对象,因为存储的字符串可长可短,但它又是一个不可变对象,即创建后其内容就不能再被改变了。

阅读全文 »

2017网易实习生编程题-笔记

发表于 2017-03-25

第一次做招聘类的编程题,还是有点不习惯,网易这次的题明显考察的是推导和思路,实现部分相对简单,也没有涉及到一些常见算法。
这里对这次的编程题做个记录,有两题还没有想到好的解法,后面有时间再来补。

阅读全文 »

Python源码剖析笔记——整数对象

发表于 2017-02-27

上一节Python源码剖析笔记——对象初探

结构

1
2
3
4
typedef struct {
PyObject_HEAD
long ob_ival;
} PyIntObject

PyObject_HEAD里面包含了int类型的引用计数器ob_refcnt和_typeobject类型的用于存储类信息的结构体指针ob_type。
对于整形对象而言,这里的ob_type指向的是一个PyInt_Type对象。
ob_ival则用于存储实际的整数值。

阅读全文 »
123
czs0x55aa

czs0x55aa

21 日志
6 标签
GitHub ZhiHu Gmail
© 2017 czs0x55aa
由 Hexo 强力驱动
主题 - NexT.Gemini