主页

Keras 快速上手指南(下):网络配置与数据预处理

在之前的教程中,我们介绍了 Keras 网络的模型与网络层,并且通过许多示例展示了网络的搭建方式。大家都注意到了,在构建网络的过程中,损失函数、优化器、激活函数等都是需要自定义的网络配置项,下面我们对这些网络配置进行详细的介绍。 损失函数 目标函数 objectives 目标函数,或称损失函数,是编译一个模型必须的两个参数之一: model.compile(loss='mean_squared_error', optimizer='sgd') 可以通过传递预定义目标函数名字指定目标函数,也可以传递一个 Theano/TensroFlow 的符号函数作为目标函数,该函数对每个数据点应该只返回一个标量值,并以下列两个参数为参数: y_true:真实的数据标签,Thean...

阅读更多

Keras 快速上手指南(中):模型与网络层

Keras 模型 Keras有两种类型的模型,序贯模型(Sequential)和函数式模型(Model),函数式模型应用更为广泛,序贯模型是函数式模型的一种特殊情况。 两类模型有一些方法是相同的: model.summary():打印出模型概况 model.get_config():返回包含模型配置信息的 Python 字典。模型也可以从它的 config 信息中重构回去 config = model.get_config() model = Model.from_config(config) model = Sequential.from_config(config) model.get_layer():依据层名或下标获得层对象 model.get...

阅读更多

Keras 快速上手指南(上):Keras 入门

什么是 Keras Keras 是基于 Theano 或 TensorFlow 的一个深度学习框架,它的设计参考了 Torch,用 Python 语言编写,是一个高度模块化的神经网络库,支持 GPU 和 CPU。 安装 Keras 使用 Keras 前还需要安装 Numpy、Scipy 等 Python 包,建议直接安装 Python 科学计算环境 Anaconda,一步到位。然后直接通过 pip install keras 安装 Keras 就可以了,非常的方便。 在 Theano 和 TensorFlow 间切换 Keras 的底层库使用 Theano 或 TensorFlow,这两个库也称为 Keras 的后端。无论是 Theano 还是 TensorFlow,都是一个...

阅读更多

让你的 Python 代码优雅又地道:教你如何写出pythonic的代码

转载自《[译]让你的Python代码优雅又地道》,翻译者 lightxue,部分内容有修改。 译序 如果说优雅也有缺点的话,那就是你需要艰巨的工作才能得到它,需要良好的教育才能欣赏它。 —— Edsger Wybe Dijkstra 在 Python 社区文化的浇灌下,演化出了一种独特的代码风格,去指导如何正确地使用 Python,这就是常说的 pythonic。一般说地道(idiomatic)的 python 代码,就是指这份代码很 pythonic。Python 的语法和标准库设计,处处契合着 pythonic 的思想。而且 Python 社区十分注重编码风格一的一致性,他们极力推行和处处实践着 pythonic。所以经常能看到基于某份代码 P vs NP (...

阅读更多

Docker 快速入门:第一个 Docker 化的 Java 应用

本文参考慕课网《第一个docker化的java应用》课程编写,感谢课程讲师 刘果国。 1. 什么是 Docker 稍微有些经验的人都知道,在一台电脑上能跑起来的程序,拿到令一台电脑上未必就可以运行,因为两台电脑可能拥有完全不同的环境,而 Docker 就是为解决这种问题而生。简单来说 Docker 就是一个装应用的容器,我们可以将任何形式的程序放入其中,为这些应用创建一个轻量级的、可移植的、自给自足的容器。这样我们在自己笔记本上编译测试通过的容器就可以批量地在生产环境中部署,包括 VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。 Docker 思想 Docker 的图标是一条运输集装箱的鲸鱼,这个图标很贴切地描述了 Docker 的核...

阅读更多

MongoDB 权限管理:裸奔很快乐,后果很严重

前言 最近部署在阿里云上的 MongoDB 数据库被人黑了,因为这个项目只是一个 Demo,所以当时就偷懒直接使用了 MongoDB 默认的配置,既没有设置数据库的访问权限,也没有修改访问的端口,处于门户大开的全裸奔状态。虽然从 2016 年底到 2017 年初,有大量 MongoDB 数据库都因为未配置安全权限被黑,但抱着自己这个小项目应该没人感兴趣的侥幸心理,一直都没有补上这个漏洞,没想到在项目演示时才发现数据被清空了…… 攻击者删除了所有的数据,只留下了下面勒索比特币的信息: { "_id" : ObjectId("594658f3c108c36b5cecf868"), "email" : "request@tfwno.gf", "btc_wa...

阅读更多

浅谈集成学习:Boosting与随机森林

本文摘自周志华《机器学习》,部分内容有修改。 个体与集成 集成学习 集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务,有时也被称为多分类系统(multi-classifier system)、基于委员会的学习(committee-based learning)等。 上图显示出集成学习的一般结构:先产生一组个体学习器(individual learner),再用某种策略将它们结合起来。个体学习器通常由一个现有的学习算法从训练数据中产生,例如 $\text{C4.5}$ 决策算法、$\text{BP}$ 神经网络算法等。 若集成中只包含同种类型的个体学习器,例如“决策树集成”中全是决策树,“神经网络集成”中全是神经网络,这样的集成是...

阅读更多

维基百科中文语料库词向量的训练:处理维基百科中文语料

在 NLP 自然语言处理中,语义层面的理解一直是一大难题,其中度量词语或句子的语义相关性又是语义理解的基础。目前的主流做法大多首先把词语转化为词向量,然后通过计算向量之间的距离来衡量词语的相关性。目前主要使用 Google 提出的 Word2Vec 方法来训练词向量,文本将简单梳理一下从数据处理到词向量训练的全过程。 获取并处理维基百科中文语料库 中文维基百科语料库的下载链接为:https://dumps.wikimedia.org/zhwiki/, 里面按照日期提供了多个版本的中文语料,每个版本都提供了很多类型的可选项,例如只包含标题、摘要等等。我们选用的是最新版本包含标题和正文的 zhwiki-latest-pages-articles.xml.bz2。 抽取内容 Wiki...

阅读更多