解决 Docker 数据卷挂载的文件权限问题

本文对 Docker 数据挂载容易产生的各种问题进行分析,应用几种常见解决方案,抽丝剥茧,提出最佳实践。本文中的样例命令全部可以运行复现。

1. 初探:Docker volume 绑定挂载导致的问题

Docker 提供了数据卷绑定挂载的机制(volume bind mounts)来将主机上的文件 (file) 或者目录 (directory) 挂载进容器 (container)。也就是 docker run 命令中熟知的 -v 参数。根据 Docker 官方文档,绑定挂载一般适合于三种场景

  • 共享主机 配置文件。譬如将主机的 DNS 配置文件 /etc/resolv.conf 挂载到容器里省去配置。
  • 共享项目 源代码构建产物。譬如将 maven 项目的 target 目录挂载到容器内。
  • 当主机的特定目录结构和容器内需要的目录结构完全一致的时候。

但是实际使用时,会遇到如下文件权限问题

Read More.

在windows 10的Ubuntu子系统使用Pytorch

Pytorch 不支持 Windows,不过 Windows 10 提供了 Ubuntu 子系统,可以提供近乎原生的 Linux 环境,虽然并不是一个好的选择,但我们仍然可以通过 Ubuntu 子系统来运行 Pytorch 程序。

需要准备

  • Windows 10
  • Pycharm 专业版

基本思路

  • Windows 10 安装 Ubuntu 子系统
  • 子系统开启 SSH
  • Pycharm 编写 Python 代码,使用专业版的上传代码到服务器的功能,将 Python 代码通过 sftp(SSH File Transfer Protocol) 上传到本地 Ubuntu 子系统运行调试。
    Read More.

使用fail2ban 防止服务器被恶意访问

fail2ban 是 Linux 下的一个防止服务器被恶意访问的程序,fail2ban 通过扫描指定的日志文件,统计访问频率,对达到指定访问频率的 ip 添加到系统防火墙(iptables/firewalld)封禁。

fail2ban 预置了很多常见服务的日志文件匹配模板,譬如 ssh,apahce服务器,nginx服务器的登陆错误模板,如果不满足我们的需求,可以自己编写规则,定义日志格式,访问频率、限制的端口等。

1.安装

Debian/Ubuntu

Read More.

樱花vps使用经验

哎,今天买了日本北海道石狩的1GB主机,买完才发现延迟并不如日本东京低,三千多日元灰飞烟灭,为何说三千多日元没了呢,因为脑子一时糊涂,取消了试用,无法退款了(上次也遇到结果这次又忘了),因此一气之下觉得有必要总结一下樱花vps的使用经验了,后来者参考。

1.樱花vps购买后带宽限制怎么回事?

sakura vps购买时有14天免费试用选项(每人最多两次试用机会),试用期间带宽限制在512Kbps,试用期间可以取消试用,大约过三四十分钟就会去除带宽限制。取消试用要在会员菜单契约情报本登陆取消。这个会员菜单和vps控制面板网页是分离开的,在vps管理页面右上角下拉框中可以找到。

2.如何退款?

14天试用期间可以申请取消并退款,月底会返还额度。但是值得注意的是取消试用后就不能退款了,这时候只能用到最低试用期限(2个月)后才可以取消合约!我就是被这点坑了。。。所以要测试线路延迟的话最好先不要取消试用。

3.安装系统后ipv6地址ping不通用不了?

需要自己改系统网络配置。官方提供了各种系统的配置方法教程,例如 CentOS的。基本上只要把原有配置文件的释放部分注释段落即可。

vi /etc/network/interfaces

最后一节:

iface eth0 inet6 static
    address 2001:e42:102:1703:160:16:xxx:xx
    netmask 64
    gateway fe80::1
    dns-nameservers 2001:e42::1

其中的地址、掩码、dns服务器都可以在sakura的控制面板查看到。

总结

sakura vps 的配置没有国际一线厂商做的好,然而他的线路是对国内最好的之一,继续用着。

深度森林

本文是 MLA2017会议上周志华关于深度森林报告的一个笔记。本文的另一个 html 版本。周志华老师花了很大一部分时间谈了谈深度森林背后的一些思考,受益良多。会议 ppt 在 MLA官网

首先,周志华回顾了深度学习的一些基本问题

深度学习是什么?

Deep Learning =? Deep neural networks (DNNs)

当今的深度学习,当前几乎等同于深度神经网络(DNNs)。就是把神经网络的层数加深。周志华认为深度学习的内涵需要思考以下问题

1.神经网络为何要加深

对于神经网络,提升模型复杂度可以提高学习性能。当然,复杂度提高之后一方面容易出现过拟合,因此深度学习同时需要提升数据量。另一方面训练过程变得困难,因此需要很多 tricks 。

但是有一个基本问题就是,如何提升模型复杂度?
Read More.

apache2开启http2

HTTP2是HTTP协议的一个重要的改进版本,下午将博客更新到了HTTP2,感觉打开速度又些许提升。对于Apache2服务器来说,使用HTTP2操作并不复杂:

Read More.

向量语义学(Vector Semantics)

本文是以文末参考文献[2]为主要参考的读书笔记,建议读者阅读参考文献[2],比本文高明多了。

由于wordpress的markdown转换不是很好看,可查看本文的另一个html版本

基本名词

词条(Lemma)或引用形式(citation form)

指的是一个词典或者词库中的一个单词条目。表示了一个词的基本形式和大致的含义。譬如对于 sing、sung、sang,它们的 Lemma 都是 sing,carpets 的 Lemma 是 carpet。
Read More.

NLP基础与N-Gram模型

wordpress的markdown生成的格式不是很好看,本文另外一个html版 

本文就是个读书笔记,建议读者阅读文末参考文献2和3,比本文不知高到哪儿去了。

自然语言处理的概念

  • 认知角度:理解语句
  • 实践角度:生成语句

自然语言处理的两大途径

规则方法

被称为理性主义方法,主要依赖于人的总结。基于人工整理的 CFG (上下文无关文法,Context-Free Grammar) 规则,给出解决方案。

test

统计方法

被称为经验主义方法,主要依赖于对数据的总结。从数据入手,利用统计机器学习方法解决问题。例如:通过自动学习得到PCFG(概率上下文无关文法),通过概率模型预测句法分析结果。

经验主义方法-统计方法

统计自然语言处理(Statistical NLP)

我们主要采用统计方法来进行机器学习。因此 统计自然语言处理的基本套路: – 问题形式化:将歧义问题转换成分类预测问题 – 语言的表示,建模:譬如n元模型 – 参数训练方法 – 有效的解码、推断

自然语言处理的基本框架

  • 词层面
    • 语言模型
    • 分词
    • 词性标注(POS)
  • 语法层面
    • 句法解析
  • 语义层面
    • 命名实体识别(NER)
    • 语义角色标注(SR)
  • 应用层面
    • 文本分类
    • 机器翻译
    • 自动问答
    • 情感分析

n元模型

统计语言模型

统计语言模型(Statistical Language Model)是一种History-based Model。 P(W)=P(w1w2…wn)=P(w1)P(w2|w1)
P(w3|w1w2)…P(wn|w1w2…wn-1)
定义:统计语言模型是用来刻画一个句子(词串序列)存在可能性的概率模型

该模型认为,语句中当前词是可以通过之前的词预测的。当然这个假设其实有些不切实际的,因为不可能总是通过过去的词预测将来的词。

Read More.

java并行流的老生常谈与重新思考

Stream API是Java 8推出的新特性,眼看Java 9 (2017年7月份) 即将推出,为什么还来谈Stream呢?毕竟自从Java 8推出以来,关于流的具体使用的文章相当之多,因此本文也不打算重复描述Stream的使用方法,而是想谈谈很少被提及的一些基本问题。

1.Java 8引入lambda语法的设计初衷是什么?是为了解决Java语言为人诟病的语法繁琐问题吗?

Read More.

1 2 3 4