霹雳火——陈嘉上

电影名: 霹雳火

导演: 陈嘉上

评分: 7

剧情: 修车行火哥凭借高超的赛车技术帮助警方抓捕了国际嫌犯。嫌犯保释之后对火哥全家进行了报复,并抓走了火哥的两个妹妹,要挟火哥赛车。最终赛车胜利,两个妹妹获救。

对数损失函数

对数损失函数

$$
L(Y, P(Y|X)) = -\log(P(Y|X))
$$

对数损失函数的含义是,对于分类y,在给定X情况下,使得$P(Y=y|X)$的概率最大化。

logistic回归

那么,对于logsitic损失函数,除了使用极大似然法进行推导外,还可以直接从对数损失函数的角度出发进行推导:
$$
\begin{equation}
P(Y|X) = \left\{
\begin{array}{lr}
h_\theta(x) = \sigma(f(x)) = \frac{1}{1 + \exp(-f(x))}, & y=1\\
1 - h_\theta(x) = 1 - \sigma(f(x)) = \frac{1}{1 + \exp(f(x))}, & y= 0
\end{array}
\right. \\

L(Y, P(Y=y|X)) = \left\{
\begin{array}{lr}
-\log h_\theta(x) = \log (1 + \exp(-f(x))), & y=1\\

  • \log(1 - h_\theta(x)) = \log (1 + \exp(f(x))), & y= 0
    \end{array}
    \right. \\

J(\theta) = -\frac{1}{n}\sum_{i=1}^{n}( y^{i}\log h_\theta(x^i) + (1 - y^i)\log(1 - h_\theta(x^i)) )
\end{equation}
$$
如果将y标签设置为1和-1,则可以有另外一种形式实现表达式的统一:
$$
\begin{equation}
P(Y|X) = \left\{
\begin{array}{lr}
h_\theta(x) = \sigma(f(x)) = \frac{1}{1 + \exp(-f(x))} = \frac{1}{1 + \exp(-yf(x))}, & y=1\\
1 - h_\theta(x) = 1 - \sigma(f(x)) = \frac{1}{1 + \exp(f(x))} = \frac{1}{1 + \exp(-yf(x))}, & y= -1
\end{array}
\right. \\
L(Y, P(Y=y|X)) = -\log h_\theta(x) = \log (1 + \exp(-yf(x))) = \log \sigma(yf(x)) \\
J(\theta) = -\frac{1}{n}\sum_{i=1}^{n}\log (1 + \exp(-y^if(x^i)))
\end{equation}
$$

references

FM算法及FFM算法

对数损失函数是如何度量损失的

FM

FM原理

$$
\begin{aligned}
y &= \omega_0 + \sum_{i=1}^f \omega_i x_i + \sum_{1<=i<j<=f} \omega_{ij} x_i x_j \\
\sum_{1<=i<j<=f} \omega_{ij} x_i x_j &= \frac{1}{2} (\sum_{1<=i,j<=f} \omega_{ij} x_i x_j - \sum_{i=1}^f \omega_{ii} xi^2) \\
&= \frac{1}{2} (\sum_{1<=i,j<=f}<v_i, v_j>x_i x_j - \sum_{i=1}^fv_i^2x_i^2) \\
&= \frac{1}{2} (\sum_{i=1}^f \sum_{j=1}^f \sum_{m=1}^k v_{im} v_{jm} x_i x_j - \sum_{i=1}^f \sum_{m=1}^k v_{im}^2 x_i^2) \\
&= \frac{1}{2} (\sum_{m=1}^k (\sum_{i=1}^f v_{im} x_i)^2 - \sum_{m=1}^k \sum_{i=1}^f (v_{im} x_i)^2) \\
\frac{\partial{f}} {\partial{l}} &=
\left\{
\begin{aligned}
1, l &= \omega_0 \\
x_i, l &= \omega_i \\
x_{i} \sum_{j=1}^f v_{im}x_j - v_{im} x_i^2, l &= v_{im}
\end{aligned}
\right\}
\end{aligned}
$$

  • 由于数据稀疏情况下$x_i x_j$很容易为0,因此无法直接通过梯度下降对$\omega_{ij}$求解
  • 利用隐变量法给每个特征一个k维隐变量$(v_{i1}, v_{i2}, …, v_{ik})$
  • 化简是为了便于求导。化简到第三步是非常自然的。其实,到了第三步就已经可以顺畅的求导了。最后一步的简化是为了剔除冗余表示,更加清爽,有利于后续处理和代码实现。

大教堂——卡佛

总结

生活的真实。生活中的细碎与琐屑,却是一个又一个的转折点。

羽毛

杰克和弗兰不想要孩子。一天,巴德和奥拉夫妇请他们到家吃晚饭。弗兰不乐意去。巴德家有一个出生没很久的难看的孩子,还养了一只孔雀。奥拉特意留着巴德带她去整牙时的牙套用来提醒自己感谢巴德为她做的许多事。临走时巴德一家送了他们几根孔雀的羽毛。弗兰喜欢他们的孩子,回去后杰克和弗兰也生了一个孩子。这一晚成为了他们生活的转折。但是后来,杰克对巴德变得小心起来,杰克一家的生活变得无聊,琐碎。对那一晚的回忆也很厌恶。

很多重大的决定都在不经意间做出,受不经意的事情影响。对于一件事的评价也往往前后不一。甚至于没来由的怨怼。别人生活的甜蜜而幸福,到了自己这里可能就是琐屑与枯燥。

瑟夫的房子

魏斯戒了酒,租下了海边瑟夫的房子,请求前妻过来一起住。原先,因为酗酒,魏斯毁了整个家庭。他们的夏天很愉快,然而瑟夫突然出现,告诉他们需要搬离。魏斯很气恼,也很希望能重新做一次父亲。但他觉得发生的就是发生了,无法重来。

略悲观。不能重来,过往的辛辣与苦楚无法改变。至少还有现在和未来可以努力甜蜜。

保鲜

丈夫失业了,此后每天躺在沙发上,无所事事。

人就这样被打垮了,被工作,被贫困,被男性的尊严。在沙发上再也起不来。

软座包厢

离异的男人坐火车去见多年不见的儿子。即将到站时,手表被偷了。心中烦躁,进一步觉得来见男孩是愚蠢的行为。最终没有下车,过站而去。

人很怯懦,也很迷茫。并不十分清楚的知道应该做什么,怎么做。一时的兴起,从而对某些事情抱有巨大的希望。又因为一些小事的联动反应而懊恼悔恨。不过只是在徘徊,被琐屑、焦躁、无望推动前行。

好事一小件

母亲为孩子定了生日蛋糕。生日当天,孩子出了车祸,昏迷死亡。蛋糕师为母亲没有来拿蛋糕而频繁电话骚扰。夫妻找到蛋糕店,想要把悲伤和愤怒发泄在蛋糕师身上,蛋糕师知道情况后安慰他们,最终和解。

生老病死,一旦降临,也只能面对。肇事逃逸,电话骚扰,蓄意凶杀,穷苦度日,一切那么远,又是那么近。痛苦无可避免,也只好用甜美的蛋糕来安慰。

维他命

帕蒂一开始卖维他命很成功,有着两个得力助手希拉和唐娜,随着市场衰败却无力继续。希拉是同性恋,喜欢帕蒂,遭到拒绝,辞职离开。帕蒂男友勾搭唐娜去酒吧,遭到黑人侮辱。姐妹团分崩离析,帕蒂和男友的生活继续。

真现实。

小心

登特小姐枪杀了玩弄她感情的男人后坐在火车候车室中目睹一对老年男女对话,最后三人一起上了火车。

不再有逃离,而是漂泊与麻木。

发烧

卡莱尔的妻子与他的同事私奔。卡莱尔陷入情感的痛苦和照顾孩子的麻烦之中。卡莱尔夫人依旧会打电话来关心卡莱尔,并且帮卡莱尔找到了非常好的保姆韦伯斯特夫人。一天,卡莱尔发了高烧,韦伯斯特夫人贴心的照顾了他,但在离开时却提出了离职,要去远方的儿子那里帮忙。卡莱尔在那一刻对妻子的离去释怀了。

分合自然,执着过,放下。

马笼头

霍利斯赌马输光了家产,带着妻子儿女以及马笼头背井离乡住进了汽车旅馆。在一次夜晚的狂欢中,霍利斯摔破了头,脑袋出了问题。过了一段时间,霍利斯一家离开了。房间里留下了马笼头。

每个家庭,每个人都是马,都生活拖拽着往前走。

大教堂

盲人来家里做客。盲人对电视上的大教堂感兴趣,请丈夫描述,并邀请丈夫一起闭着眼睛画出来。

心为形役。丢了形,见了心。

总结

生活的真实。生活中的细碎与琐屑,却是一个又一个的转折点。

tensorflow函数说明

tf.nn.embedding_lookup&tf.nn.embedding_lookup_sparse

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
tf.nn.embedding_lookup(
params,
ids,
partition_strategy='mod',
name=None,
validate_indices=True,
max_norm=None
)

tf.nn.embedding_lookup_sparse(
params,
sp_ids,
sp_weights,
partition_strategy='mod',
name=None,
combiner=None,
max_norm=None
)

params是embedding的参数tensor(设为$F*K$),ids是指明索引的tensor, sp_ids是指明索引的sparse_tensor。

函数的目的是根据索引来进行embedding tensor的按第一维度切片。

如果ids是一维张量N,就是按ids寻找index对应元素,返回tensor是$N*K$。

如果是ids二维张量$NM$,则是按照第二维度寻找index对应元素,寻找N次,组合后返回就是$NM*K$。

在embedding_lookup_sparse中,则是根据稀疏矩阵sp_ids(设为$NM$)来寻找index对应元素。不同点在于,按照index找到的元素需要根据combiner参数指定的方式来进行聚合操作,最终变成$(K,)$的tensor。因此完整的返回是$NK$

另外需要注意的是partition_strategy参数。当params为多个tensor构成的list(实际上会合并成一个大tensor)时,该参数负责指定合并后大tensor的index编排方法。list的长度为分区数,设为p。总元素数量(第一维度总长度)设为$id+1$。

在div情况下就按照顺序来排index;

在mod情况下,每个分区的基本元素数量为$id //p$,由于不一定能够整除,前$(id+ 1) \% p$个分区的元素数量加一。那么index的编排就是

1
2
3
4
5
6
7
params = [2*4, 2*4, 3*4]
三个分区,每个分区的基本元素数为6//3=2, 前7%3=1个分区元素数量加一
重新编排后就是
[3*4, 2*4, 2*4]
他们的index则是
[0,1,2]*3+0, [0,1]*3+1, [0,1]*3+2, 即是
[0,3,6,1,4,2,5]。

End-to-End Learning of Motion Representation for Video Understanding

Abstract

人工抽取的光流特征被广泛的应用在视频分析问题上,并没有能够end-to-end。本文提出TVNet解决这个问题。

1. Introduction

现有的光流特征提取方法有效但是运算低效。存在一些显著的缺点:

  • 训练分为两步。先抽取光流特征在训练,不是end-to-end
  • 光流特征抽取时间和空间资源占用很大

为了处理这些问题,通过模仿和展开TV-L1的迭代优化过程,文章提出了TVNet。特别的,我们将TV-L1的迭代方法做成了nn的一个自定义层。结果是:

  • TVNet可以直接使用,而不需要基于标注好的光流数据进行额外训练
  • TVNet可以end-to-end,不需要预计算和存储光流特征
  • 由于网络直接和label关联,因此可以进一步自动学习光流抽取器的参数,使得特征更加丰富和task-specific

2. Related Work

有许多深度构架的尝试去学习视频的运动特征,主要有两个大方向:

  • 将2D卷积扩展到3D,但这样会计算量大、对数据量要求高
  • two-stream networks,训练两个网络,一个使用图像(i.e. RGB)数据,一个使用手工运动特征例如光流来表征运动模式

光流特征抽取一般使用cnn,需要大量的成本高昂的光流标注数据。

近期,FlowNet被提出,它通过单个网络,利用合成的真实数据来学习光流特征和行为识别。

3. Notations and background

3.1 Notations

视频是一个图像序列,定义$I_t(x,y)$为像素亮度函数,$x$,$y$为平面坐标,$t$为时间,$I$为亮度。

3.2 The TV-L1 method

在现有的估计光流的方法中,TV-L1很好的实现了效率和精度之间的平衡。

min (|∇u (x)| + |∇u (x)|) + λ|ρ(u(x))|
$$
\min_{u(\bold x), \bold x\in \Omega} \sum_{\bold x \in \Omega}()
$$

宽容——房龙

总结

本书的宽容主题主要围绕着的是宗教变革过程中种种的斗争、迫害、不宽容。并在最后指出,人类历经千年斗争终于在不同信仰不同教义方面取得了初步的宽容,但紧接着种族不宽容、社会不宽容以及许多不足挂齿的不宽容又开始正式登上舞台,带给人们更大的痛苦。

如果说宗教不宽容更多的是团体之间的对抗,个人精神的解放带来的可能是更加极端更加琐碎而难以想象的各种不宽容。团体之间的对抗可以更加容易的通过法令、通过政治去控制,个人的不宽容却更加难以防范与规范,更加危险而无处不在,更频繁而尖锐的让每个人处在痛苦之中。

我想,个人的不宽容应当是自古而今始终存在的,也是各类不宽容的根源所在。只是原先大众尚未开化,个体思想不显,容易被个别领袖所操纵,又受限于生产力产生的群体依赖关系,因而更显式的表现为团体对抗。

我并没有在此书中看到人应该如何宽容。仅仅是对自己的思想报以警惕,看到自身的局限性与相对性并不能指导人在遭遇矛盾时的做法。绝对容易衍生强权与独裁,相对容易导致软弱与犹豫。警惕与防范不宽容要么将宽容的敌人引进大门,要么陷入另一种不宽容。我看不到恰到好处的可能性。相对是没有地基的,要么被敌人毁灭,要么从自身内部腐烂瓦解。

大和谐的前提一定是人拥抱同一种基本原则。在这一种原则上没有任何的宽容可以放任。尤其追求虚无缥缈的宽容与自由,不如实实在在的讨论什么是必须认同的,以及尽量放宽这一认同原则的范围,减少不必要的束缚。并以此为指导消灭异端。很遗憾的,这一基本原则的找寻不可能是一蹴而就的,势必需要不停的迭代,也就在此过程中必不可少的会发生迫害与变革。在这个过程中我们能做的也就是不要去犯相同的错误,不要采用极端的手段。不要如加尔文一般在掌权之后将相同的迫害加之于后人。

至于说恐惧是不宽容的根源。或许在人类伊始是这样的,但到了今天或许不宽容对部分人而言成为了一种本能。就如电影《老无所依》的恶。

序言

一、无知的暴虐

该书第二十六卷一○五二页这样写道“宽容(来源于拉丁字 tolerare):容许别人有行 动和判断的自由,对不同于自己或传统观点的见解的耐心公正的容忍。”

原始社会非常复杂,原始语言的时态和变格比俄语和阿拉伯语还要多,原始人不仅是现实的奴隶,也是过去和未来的奴隶;一句话,他们是凄凉悲惨的生灵,在恐惧中求生,在战栗中死去。

他们根本不懂因果法则。……
因此,在一个社会中,如果一切事情都被认为是由看不见的生灵操纵的,那么社会要维持下去,就必须绝对服从能平息上帝怒火的律法。
……
而低级社会形态的特点是,人们认为现状已经完 美无暇了,没有理由再做什么改进,因为他们从未见过别的世界。
如果上面所说的是真的,那么怎样才能防止律法和已定的社会形式有所变更呢?
就是靠及时惩处拒不把公共条例看做是上天旨意具体体现的那些人,说得露骨一点,就是靠僵化的专横制度。

因为无知,所以信奉初始阶段总结出来的错误律法和“忌讳”。

我们有时看到的宽容,其实是由于无知导致的漠不关心。

为宽容的斗争直到个性发现以后才开始。

二、希腊人

“只有所有种族、气候、经济和政治条件在不健全的世界中达到或接近一种理想比例时, 高级形式的文明才会突然地、貌似自动地脱颖而出。”

他们提出,苏格拉底只要摈弃辩论、争吵、说教这些可怕陋习,不再干涉别人所偏爱的东西,不再用永无止境的疑问去纠缠他们,就可以被赦免。

苏格拉底这样的行为是宽容么?

但柏拉图却是古代众多理论家中唯一的一个出于对完美精神世界的炽爱而鼓吹不宽客的人。

……

这个世界观转变的原因并不难寻找。苏格拉底扎根于民众之中,而柏拉图却惧怕生活。 他为了逃避丑陋的世界,躲到了自己臆想的王国中。

惧怕因而独裁。

罗马人在许多事情上甚至比黄金时代的希腊人还要宽容。他们容许臣民自由思考,但是不允许人们对政治上的某些随机应变的原则提出质问,因为罗马政权之所以从史前时期就能保持繁荣安定,全部仰仗这些原则。

希腊思想体系的老一代领袖人物把其宽容精神基于某些明确的结论上,这些结论是他们经过数世纪认真实践和苦思冥想总结出来的。而罗马人却认为,他们用不着从事这方面的探讨。他们对理论问题漠不关心,还把这种态度引为自豪,他们对实用的东西感兴趣,注重行动,看不起高谈阔论。

……

人们时常争辩说,罗马人之所以能够摆出一副至高无上的宽容姿态,是因为他们对哥罗西人、卡帕迪西亚人以及其他所有野蛮部落的人都持有同等的轻蔑态度。这可能是正确的。

宽容起于蔑视。

结果,所有的美味佳肴都失去了味道,所有的图书都变得乏味,所有的女人都失去了魅力,甚至生存本身也成为一种负担,很多人宁可获取一个体面的机会使自己丧生。
剩下的只有一种安慰!对未知和无形世界的遐想。

……

不过从长远的观点看,这种纯理性的教义缺乏罗马人所需要的营养,他们开始追求一种 可以作为精神食粮的“情感”。

由此说来,纯哲学色彩的“宗教”(如果我们把宗教思想和追求有益高尚生活的愿望联系 起来,这确是一种哲学色彩的宗教)只能取悦于一小部分人……

自我无法支撑起自我的充盈,只好需求外物。物品也无法支撑的时候,就需要求诸“神圣”。

三、桎梏的开始

大多数罗马人水深火热的生活与最早期传教士的成功 有着很大关系,就象窘苦生活导致神学的成功一样。

贫穷也导致自我的消亡。

没有文字规定,没有明确的条例规则,反而使信仰者可以自由地遵循耶稣的精神而不是
教规文字了。如果他们被一本书束缚了,势必会把全部精力用在理论讨论上,沉缅于对句号
冒号的迷人的研究中。

四、上帝的晨光

五、囚禁

六、生活的纯洁

用圆圈做比喻,说明一旦社会失衡,过于偏向某些领域,会导致崩溃。

七、宗教裁判所

为了巩固地位和权威而裁判异教徒

八、求知的人

现代的不宽容就像高卢人一样,可以分为三种:处于懒惰的不宽容,处于无知的不宽容和出于自私自利的不宽容。

无知的人仅仅因为他对事物的一无所知 便可以成为极度危险的人物。但是,他如果还为自己的智力不足措辞辩解,那就更为可怕。

超出时代的智者如何冲出愚蠢的思想的包围?宽容和坚持并不矛盾。但当人与人之间的差距过大的时候,就会难以交流,那个时候还可能有真的宽容和谦卑么?或许更多的是怜悯?

九、向书开战

因此我主张,由他们去说去写吧。如果说的是至理名言,我们就应该知道,如不然,也会很快被忘记。

真的是这样么

十、关于一般历史书籍,尤其是这本书

一句话,个人的不宽容只能以自由国家的大多数公民不介意为极限,不得超越。然而官方的不宽容却不然,它可以权力浩大。

十一、文艺复兴

在我看来,作家在许多地方与攻城炮兵有相同之处。他们也在操纵一门重型火炮,他们的文学炮弹也许会在最不可能的地方引起革命或动乱。

不过严格他讲,文艺复兴起先并不是“向前看”的运动。它鄙视刚刚消失的过去,称上 一代人的著作为“野蛮”之作(或“哥特式的野蛮”之作,因为哥特人曾一度和匈奴人一样 名声狼藉)。文艺复兴的主要志趣在艺术品上,因为艺术品里蕴藏着一种叫“古典精神”的物 。

文艺复兴的确大大振兴了良知的自由、宽容和更为美好的世界,不过运动的领袖们并没想这样做。

马可·波罗从生到死当然一直是教会的虔诚弟子,谁要是把他比做几乎是同时代的著名的罗吉尔·培根,他还会怒不可遏。……

不过这两个人中还是波罗更为危险。

十万人中最多只有一个人会跟随培根追逐天上的虹,琢磨娓娓动 的进化理论以颠扑当 时的神圣观点,而只学过 ABC 的平民百姓却可以从马可·波罗那儿得知世界上还存在着《旧 约》作者从 想到过的东西。

我并不是说在世界尚 获得一丝一毫的自由之前,仅靠出版一 书就能引起对《圣经》权威性的反叛。普遍的启蒙开化是数世纪艰苦准备的结果。不过,探险家、航海家和旅行家的朴实宣言却得到了大家的理解,这对怀疑论精神的兴起起了重大作用。怀疑论是文艺复兴后期的特点,它允许人们去说去写那些仅在几年前还会使人落入宗教法庭的魔爪的言论。

文艺复兴不是自觉钻研科学的时代,在精神领域中也很遗憾缺乏真正的志趣。这三百年里在一切事物中作主导的是美和享乐。教皇虽然暴跳如雷反对一些臣民的异端教旨,可是只要这些反叛者健谈、懂一点印刷和建筑学,他倒也十分乐于邀请他们共进晚餐。……

人们表露的是对生活的新的向往,但是里面却无疑蕴藏着一种潜在的不满,反对现存的社会和拥有无上权力的教会对人类理解发展的束缚。

十二、基督教改革运动

宗教改革是形形色色的人出于形形色色的动机造成的。直到最近我们才开始明白,宗教上的不满只是这场大动乱的次要原因,实际上它是一场不可避免的社会和经济革命,神学的背景微乎其微。

可是新教徒没有受过长达数世纪的如何进行迫害和镇压的训练,他们想建立一个没有反对者的禁地,却失败了。……

这就是新教为宽容事业带来的帮助。

它重建了人的尊严。

十三、伊拉斯谟

也许乔纳森·斯威夫特(按我的记忆)接近了这个问题,他说,大多数人都有足 够的宗教信仰做依据憎恨旁人,却不能爱别人。遗憾的是,这条真知灼见还不能完全解决我 们目前的困难。有些人对宗教的熟悉不逊于任何人,也最从心底里仇恨别人。有些人全无信 仰宗教的天性,却对野猫、野狗和基督世界的人类倾注了真挚感情。

大凡为宽容而战的人,不论彼此有什么不同,都有一点是一致的,他们的信仰总是伴随着怀疑;他们可以诚实地相信自己正确,却又从不能使自己的怀疑转化为坚固绝对的信念。

如果没有绝对的确信又如何行事?抱持一种尝试的态度当然可以,但前提在于它是一种对未来不可把控而进行的无奈尝试。而对于既定共识的违反并由此带来伤害的行为,难道还要怀疑么?譬如杀人,譬如欺诈,行此等事之人或许有其可怜之处,迫于无奈,冲动,或者是愚蠢,然而这种恶难道不应该是被确信的么?如果不能确信,岂不是彻底的陷入混乱。然而一旦被确信,便容易陷入独裁,很难界定什么是需要被确信的,什么是值得存有怀疑的。

更进一步的,所谓的基本原则与共识,有是如何出现的呢?不过是绝大多数人都畏惧的。譬如说都不希望被杀,被偷盗。换言之,一些行为很难被人所防范,很容易危险到绝大多数人的利益,因此行为了集体的共识。但是,如果出现一个超人,譬如死侍这样不死的存在,共识、道德对他还有用处么?绝大多数人又有什么资格来要求超人从他们的弱者角度进行思考和行动?

宽容之所以存在,不过是因为人能看到自己的不足,看到不宽容的事也可能发生在自己身上而已?

十四、 拉伯雷

人们说:“一个大组织只要有一个人说了算,而其他所有人都跪下喊阿门,服从他,那么 管理起来还不是易若反掌。”

在新教徒国家长大的人要对这个错误复杂的问题有一个正确全面的了解,那真是难上加 难。不过,如果我没有搞错,教皇“一 正确”的言论就象美国的宪法修定案一样历历可数。

况且,重要决策总要经过充分讨论,而最后做出决定之前的争论常常会动摇教会的稳定。 这样产生的宣言是“一 正确”的,正如同我们的宪法修定案也一 正确一样,因为它们是 “最后”的,一经明确地并入最高法律,任何争持都到此结束。

谁要是说管理美国很容易,因为人们在紧急时刻都会站在宪法的一边,那就大错特错了, 就象是说天主教徒既然在重大的信仰问题上承认教皇的绝对权威,那么,他们一定是一群驯 良的羔羊,把拥有自己独特想法的权力都放弃了。

假如真是这样,那么住在拉特兰和梵蒂冈宫殿里的人倒是有好日子过了。但是,只要肤浅地研究一下一千五百年来的历史,就会发现事情恰恰相反。那些主张信仰改革的人在著书立说时,似乎以为罗马当权者全然不知道路德、加尔文和茨温利满怀仇恨谴 的那些罪恶,其实他们才是真正不知事情的真相,或者说不能处埋好他们对美好事业的热情。

象艾德里安六世和克莱芒七世这样的人完全了解教会有重大弊病。不过,指出丹麦王国里有些腐 现象是一回事,而改正弊病则是另一回事,就连可怜的哈姆雷特最后也不得不承认这一点。

统治阶层并不是真的傻到不知道正在发生的事,往往他们还是最先知道的。

十五、旧时代的新招牌

宽容就如同自由。

只是乞求是得不到的。只有永远保持警惕才能保住它。

加尔文和路德的光辉形象全部崩塌了。。

十六、 再洗礼教徒

是再洗礼孕育了约翰还是倒霉的被约翰坑了?

十七、索兹尼一家

我们为什么不记住,我们唯一的主是耶稣基督,大家都是兄弟,有谁被赋予了压服别人的力量呢?可能其中一个兄弟比别人博学一点,但是在自由和基督的关系上,我们是平等的。

十八、蒙田

不久之后,欧洲大陆的条件大为好转,国际商业又成为可能,于是产生了另一种历史现象。

以三个双字词组表示便是:生意益于宽容。

是否可以说物质利益高于信仰坚持呢?

十九、阿米尼斯

二十、布鲁诺

二十一、斯宾诺沙

二十二、新的天国

二十三、太阳国王

二十四、弗雷迪里克大帝

二十五、伏尔泰

二十六、百科全书

他们常常后悔没有同时代的大部分人对各种事物的敬畏感,认为这不过是过去遗留下来的、虽然没什么害处却很幼稚的东西。

他们很少注意古代民族的历史,西方的人们出于某些好奇的原因,从巴比伦亚人、埃及人、赫梯人和迦勒底人的历史中挑出一些记载,作为道德和习俗的行动指南。但是大师苏格拉底的真正信徒们只倾 自己良心的呼唤,根 不管后果,他们无所畏惧地生活在早已变得屈服温顺的世界。

二十七、革命的不宽容

二十八、莱辛

莱辛用这个古老的民间故事来证明他的信念:没有一种宗教可以垄断真理。人的内心世 界比他表面上遵奉某种规定的仪式和教条更有价值,因此人们的任务就是友好地相处,任何 人也无权把自己视为完美无缺的偶像让别人崇拜,无权宣布“我比其他任何人都好,因为只 有我掌握真理。”

至少可以说,抗泰姆的推理方法是有独创性的。

他说:“上帝是万能的,他可以制定出对所有人民在任何时间任何情况下都适用的科学定 律。所以,只要他想做,就可以很容易地引导人们的思想,使人们在宗教问题上持相同的观 点。我们知道上帝并没有这么干。因此,如果我们用武力迫使别人相信自己是正确的,我们 就违背了上帝的明确旨意。”

二十九、汤姆·佩恩

佩恩认为,真正的宗教,他称之为“人性的宗教”,有两个敌人,一个是无神论,另一个 是盲信主义。

公众的不宽容刚一发泄完自己的愤怒,个人的不宽容又开始了。

官方死刑已告终止,而私刑处死又问世了。

三十、最后一百年

二十年前写这 书一定很容易。那时在大多数人的头脑中,“不宽容”这个词几乎完全和 “宗教不宽容”的意思一样 ……

社会刚开始摆脱宗教偏执的恐怖,又得忍受更为痛苦的种族不宽容、社会不宽容以及许多不足挂齿的不宽容,对于它们的存在,十年前的人们连想都没想过。

宗教偏执的摆脱让其他的不宽容进入学者、媒体、社会活动家的视野而已。或许对普通人来说,这样的不宽容无时无刻不再发生,从来不曾间断?

我这里说的“教育”不是指纯粹的事实积累,这被看作是现代孩子们的必需有的精神库存。我想说的是,对现时的真正理解孕育于对过去的善意大度的了解之中。

在这 书中我已经力图证明,不宽容不过是老百姓自卫 能的一种表现。

……

我重复一遍,恐怖是所有不宽容的起因。

……

只要不宽容是我们的自我保护法则中必不可少的一部分,要求宽容简直是犯罪。

后记 但是这个世界并不幸福

centos7.4安装机器学习环境

centos+python3的dockerfile, 并且配置中文环境支持

1
2
3
4
5
6
7
8
9
10
11
12
13
14
yum install wget -y
# cd /tmp
# wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
# tar -xzvf Python-3.6.1.tgz -C /tmp
yum -y update
yum install yum-plugin-ovl gcc zlib* openssl* mysql mysql-devel mysql-lib gcc-c++ bzip2-devel sqlite-devel bzip2 mesa-libGL-devel -y
# cd /tmp/Python-3.6.1
# ./configure --prefix=/usr/local && make && make install
cd /tmp
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.1.0-Linux-x86_64.sh
bash Anaconda3-5.1.0-Linux-x86_64.sh -b -p /home/anaconda3
echo 'export PATH="/home/anaconda3/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
/home/anaconda3/bin/pip install -i https://mirrors.aliyun.com/pypi/simple cmake PyQt5 dill bayesian-optimization category_encoders seaborn graphviz xgboost
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
FROM daocloud.io/library/centos:7.2.1511
RUN yum install wget -y
RUN wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
RUN tar -xzvf Python-3.6.1.tgz
# RUN yum -y update
# 用来解决Rpmdb checksum is invalid: dCDPT(pkg checksums) 问题
RUN yum -y install yum-plugin-ovl
RUN yum install gcc -y
RUN yum install zlib* -y
RUN yum install openssl* -y
RUN yum install mysql mysql-devel mysql-lib -y
RUN yum install gcc-c++ -y
RUN yum install bzip2-devel -y
RUN yum install sqlite-devel -y

RUN ./Python-3.6.1/configure --prefix=/usr/local \
&& make\
&& make install

# RUN mkdir -p /workspace/python_file
# COPY test /workspace/python_file
#WORKDIR /home;
RUN mkdir analyze-server
# add and install requirements.txt
WORKDIR /analyze-server

ADD . /analyze-server
RUN ls
#RUN pip3 install --no-index --find-links=/ae-server/packages -r /ae-server/ae-server-requirements.txt
RUN pip3 install -i https://mirrors.aliyun.com/pypi/simple -r /analyze-server/analyze-server-requirements.txt
# RUN pip3 install -i https://mirrors.aliyun.com/pypi/simple gensim
#RUN export LD_LIBLABRARY_PATH = /usr/local/cuda-8.0/lib64:$LD_LIBLABRARY_PATH

EXPOSE 5000
EXPOSE 8888
EXPOSE 6006
RUN localedef -i en_US -f UTF-8 en_US.UTF-8
ENV LANG=en_US.UTF-8
#ENTRYPOINT ["python3"]
CMD ["python3", "manage.py", "runserver", "-h", "0.0.0.0", "-p", "5000"]

其中,如果出现Rpmdb checksum is invalid: dCDPT(pkg checksums)报错,可以这样解决

1
2
RUN yum -y update \
&& yum -y install yum-plugin-ovl

参考Rpmdb checksum is invalid - Trying to install gcc in a CentOS 7.2 docker image

centos中文环境支持,Default locale is set to en_US.UTF-8 but it’s missing

1
2
RUN localedef -i en_US -f UTF-8 en_US.UTF-8
ENV LANG=en_US.UTF-8

八恶人——昆汀·塔伦蒂诺

电影名:八恶人

导演: 昆汀·塔伦蒂诺

评分: 10

剧情:赏金猎人带着罪犯多沫歌前去红石镇领赏。多沫歌帮在酒店就行伏击,最终全部死光。中间黑人与白人的仇恨也是一条主线。

并没有必要从这样一部电影中去解读何谓正义,去理解种族冲突。大道理就那么多,早就已经被讲过无数遍,人需要的是自我的坚持和反思,是去看不同的世界,不同的事物,不同的可能,从而更好地理解自己的周遭,更好地知道自己将要面对的,以及自己需要去做的。

花滑女王——奥列格·特罗费姆

电影名:花滑女王

导演: 奥列格·特罗费姆

评分: 10

剧情:娜佳虽然天赋不足,但凭借其斗志成为了俄罗斯的顶尖女花滑运动员,并和顶尖男选手里奥纳夫成为搭档和爱侣。但在世界杯前夕,娜佳意外受伤,下半身瘫痪,里奥纳夫弃她而去。教练让冰球运动员萨沙帮助娜佳重燃斗志,萨沙和娜佳一开始相互看不顺眼,最后相互爱慕,娜佳也在萨沙的帮助下重新站了起来。再临世界杯,萨沙为了娜佳离她而去,娜佳和里奥纳夫再次组队,却矛盾频频,在赛前的表演上,娜佳更是动作失误滑倒。正式赛上,里奥纳夫觉得获胜无望,拒绝出场。萨沙最后时刻来到赛场和娜佳同滑。虽然他们很快就被逐出赛场,但是娜佳收获了幸福。

画面很美。

天才枪手——纳塔吾·彭皮里亚

电影名:天才枪手

导演: 纳塔吾·彭皮里亚

评分: 7

剧情:天才少女小琳帮助闺蜜考试作弊。在意外得知爸爸交纳了高额赞助费才让自己就读学校后,开始以金钱交易方式帮助富家同学作弊。闺蜜和其男友以天价请求小琳帮助其在国际会考上作弊,为了计划成功,其男友设计耽误了贫苦的天才少年阿宾的奖学金考试,从而让阿宾也参加计划。最后,虽然作弊成功,但是阿宾被发现并被取消了升学资格。阿宾回家经营洗衣店并开始策划泰国联考的作弊计划,并要挟小琳参与。小琳经历这一系列事情之后幡然悔悟,主动自首,坦白作弊行为。

黑豹——瑞恩·库格勒

电影名:黑豹

导演: 瑞恩·库格勒

评分: 7

剧情:瓦坎达受益于特有资源黑金,拥有远超其他国家的高科技。但为了安全,却伪装成落后国家。上任王子偷运黑金出瓦坎达希望帮助其他国家,遭到制裁。三十年后,王子之子展开报复,最终被新任国王打败。同时国王决定开放瓦坎达,提供技术开展国际援助。

Python代码打包

使用setuptools进行python代码打包发布。

假设包文件夹为mlearn。

需要建立父级文件夹及相关文件,结构如下:

1
2
3
4
5
6
7
8
9
mlearn
-- COPYING (许可声明,就是repo的LICENSE,改名放到这里就可以了)
-- MANITEST.in (除了package(mlearn)之外其他需要加入包的文件)
-- README.rst (readme,不支持markdown)
-- docs (文档文件夹)
-- mlearn (package)
-- __init__.py
-- ...
-- setup.py (配置文件)

最重要的就是setup.py。setup.py文件写法如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
import codecs
import os
import sys

try:
from setuptools import setup, find_packages
except:
from distutils.core import setup

"""
打包的用的setup必须引入,
"""


def read(fname):
"""
定义一个read方法,用来读取目录下的长描述

我们一般是将README文件中的内容读取出来作为长描述,这个会在PyPI中你这个包的页面上展现出来,

你也可以不用这个方法,自己手动写内容即可,

PyPI上支持.rst格式的文件。暂不支持.md格式的文件,<BR>.rst文件PyPI会自动把它转为HTML形式显示在你包的信息页面上。
"""

return codecs.open(os.path.join(os.path.dirname(__file__), fname)).read()


NAME = "mlearn"

"""
名字,一般放你包的名字即可
"""

PACKAGES = ["mlearn"]

"""
包含的包,可以多个,这是一个列表
"""

DESCRIPTION = "this is a test package for packing python liberaries tutorial."

"""
关于这个包的描述
"""

LONG_DESCRIPTION = read("README.rst")

"""
参见read方法说明
"""

KEYWORDS = "test python package"

"""
关于当前包的一些关键字,方便PyPI进行分类。
"""

AUTHOR = "muzhenxv"

"""
谁是这个包的作者,写谁的名字吧
"""

AUTHOR_EMAIL = "muzhenxv@gmail.com"

"""
作者的邮件地址
"""

URL = "http://www.muzhen.tk"

"""
你这个包的项目地址,如果有,给一个吧,没有你直接填写在PyPI你这个包的地址也是可以的
"""

VERSION = "1.0.0"

"""
当前包的版本,这个按你自己需要的版本控制方式来
"""

LICENSE = "MIT"

"""
授权方式,我喜欢的是MIT的方式,你可以换成其他方式
"""

setup(
name=NAME,

version=VERSION,

description=DESCRIPTION,

long_description=LONG_DESCRIPTION,

classifiers=
[

'License :: OSI Approved :: MIT License',

'Programming Language :: Python',

'Intended Audience :: Developers',

'Operating System :: OS Independent',

],

keywords=KEYWORDS,

author=AUTHOR,

author_email=AUTHOR_EMAIL,

url=URL,

license=LICENSE,

packages=find_packages(),

include_package_data=True,

# package_dir={'mlearn':'mlearn'},

zip_safe=True

)



## 把上面的变量填入了一个setup()中即可。

最重要的就是packages=find_packages()这句代码,正确的加入所有包和子包。

报错的解决方法:

  1. error: [Errno 13] Permission denied: ‘/Users/sunny/anaconda/lib/python3.6/site-packages/easy-install.pth’ 我在mac上出现这样的错误,解决方法为

    1
    sudo chown -R sunny /Users/sunny/anaconda3

references

Python-分发工具初探之-setuptools

将自己写的Python代码打包放到PyPI上

jupyter插件

安装jupyter扩展,从而可以使用一些小功能。

安装方法

用conda安装:

1
2
conda install -c conda-forge jupyter_contrib_nbextensions
conda install -c conda-forge jupyter_nbextensions_configurator

或者用pip:

1
2
3
pip install jupyter_nbextensions_configurator jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
jupyter nbextensions_configurator enable --user

安装好后在home页有一个Nbextensions选项卡,点进去后就可以勾选想要的插件功能。

好用的插件

  1. Table of Contents: 目录
  2. zenmode:切换jupyter背景
  3. Codefolding:代码折叠
  4. Collapsible Headings:目录折叠
  5. 其他:比如高亮选中单词(Highlight selected word),着色(highlighter),显示执行时间(ExecuteTime),代码格式化(autopep8,需要安装autopep8包)之类

magic方法

  1. %debug:出错后直接建一个cell打%debug,就可以进入debug模式

  2. tqdm_notebook:

    1
    2
    3
    4
    5
    from tqdm import tnrange, tqdm_notebook
    from time import sleep
    for i in tqdm_notebook(range(4), desc='1st loop'):
    for j in tqdm_notebook(range(100), desc='2nd loop', leave=False):
    sleep(0.01)

references

Top 5:五大最实用的Jupyter Notebook扩展插件

敌对分子——斯考特·库伯

电影名:敌对分子

导演: 斯考特·库伯

评分: 7

剧情: 美洲土著和白人互相残杀与提防,终于和平时代将要来临。上尉压下的心中的仇恨,奉命护送某土著酋长一家返回故土。一路上,他们共同应对了极端土著和白人对异族的攻击,原先的仇恨被化解。