Zhang's Wikipedia

玩就玩大的

宏使用 Tricks

人为地定义一些“无意义”的宏(宏名本身有意义),以起到提升代码程序的可读性。 1. IN/OUT 指定参数用于输入还是输出: #define IN #define OUT void InvertMatrix( IN Matrix originalMatrix, OUT ...

2018-03-20 23:49:15

阅读数:72

评论数:0

python tricks —— datetime 删除日期中的前导 0

>> from datetime import datetime >> now = datetime.now() >> now.strftime('%Y-%m-%d') '2018-01-29' 如果此时我们想转换为 2018-1-29的形式,有如下的两种方式...

2018-01-29 00:33:56

阅读数:445

评论数:0

Linux 命令行 Tricks

区分文件和目录: ls -F ls -F -R:递归显示目录 仅改变文件的修改时间,而不修改文件的内容: touch filename; 使用 file 命令查看文件类型: ASCII text directory shell script 0. 常用 tricks 仅显示目录...

2017-10-11 20:49:42

阅读数:149

评论数:0

Tricks(四十九)—— 按 batch 访问越界的解决办法

使用 min 函数指定访问的最终位置,本质上是增加一个条件判断

2017-04-06 16:25:48

阅读数:212

评论数:0

Tricks(四十八)—— 注释一段代码

为 if 的条件判断表达式,传一个永假的语句,来注释一段代码:# Python if False: ... ... ...# C/C++ if (false) { ... ... }永远不要直接删去以前的代码,雁过留声,码过要有痕,以方便进行版本管理。当然这...

2017-03-21 10:02:20

阅读数:413

评论数:0

Tricks(四十七)—— 布尔矩阵(0-1矩阵)取反

假定 X 是一个 0-1 元素构成的布尔矩阵,则对其取反,0 变成 1,1 变为 0(True 变为 False,False 变成 True),只需要一步简单的操作:Y = (X == False)

2017-03-20 15:44:18

阅读数:1373

评论数:0

Python Tricks(二十二)—— small tricks

多次 importimport numpy as np, matplotlib.pyplot as plt

2016-10-26 11:00:12

阅读数:309

评论数:0

Python Tricks(二十一)—— 排列组合的计算

使用循环;阶乘的实现:def fac(n): r = 1. for i in range(1, n+1): r *= i return r 排列:Anm=m!n!=(m−n+1)⋯mA_m^n=\frac{m!}{n!}=(m-n+1)\cdots m de...

2016-10-25 11:48:11

阅读数:304

评论数:0

Tricks(四十六)—— 四个数中最小值的实现

重复利用已有的宏定义。 #define MIN(a, b) ((a) < (b) ? (a) : (b)) #define MIN3(a, b, c) MIN(MIN((a), (b)), (c)) #define MIN4(a, b, c, d) MIN(MIN3((a), (b), (c...

2016-05-04 23:11:28

阅读数:314

评论数:0

Tricks(四十五)—— 可视化 min 和 max(表示一种截断)

x=max(x,−2)x=min(x,3)}⇒x=min(max(x,−2),3) \left . \begin{split} &x = \max(x,-2)\\ &x=\min(x,3) \end{split}\right \}\Rightarrow x=\min(\max(x,...

2016-05-01 15:40:58

阅读数:420

评论数:0

Tricks(四十四)—— 双层循环变为单层索引

在机器学习模型训练的过程中,一般会有两层循环,外层循环表示 epoch,内层循环进行样本集的遍历和迭代;n_epochs, n_iters = 5, 6 for i in range(n_epochs): for j in range(n_iters): print 'it...

2016-04-26 20:11:02

阅读数:527

评论数:0

Tricks(四十三)—— 逆序的方式访问一个 list

我们知道对于一 range,只可产生递增的等差数列(默认公差为1,所谓公差也即步长)。那么我们该如何通过 range(建立索引的方式)逆序的访问一个 list 呢?l = [1, 2, 3] for i in range(1, len(l)+1): print l[-i] 3 2 1

2016-04-25 17:43:43

阅读数:327

评论数:0

Tricks(四十二)—— 数据集分块

[X[k:k+mini_batch_size] for k in xrange(0, n, mini_batch_size)]import random X = [[random.randrange(0, 10) for _ in range(5)] for _ in xrange(20)] ra...

2016-04-25 15:55:11

阅读数:353

评论数:0

Tricks (四十一)—— 一 list 两用

考虑一个 3-5-1 的神经网络拓扑结构,让你给出整个网络结构可能达到的权值的数目,或者层间权值矩阵的 shape,手工计算即是:(3+1)*5+(5+1)*1=26, 0-1: W_{5*4}, 1-2: W_{1*6}。此时我们需遍历的就不再单单是单点的 list 元素,一种解决方案:topo...

2016-04-25 09:34:04

阅读数:354

评论数:0

Tricks(四十)—— 神经网络解决与(或)及异或问题

G(x)=sign⎛⎝⎜⎜∑t=1Tαtsign(wTtx)g(x)⎞⎠⎟⎟ G(\mathbf x)=\text{sign}\left (\sum_{t=1}^T\alpha_t\underbrace{\text{sign}(\mathbf w_t^T\mathbf x)...

2016-04-24 17:07:03

阅读数:1873

评论数:0

Tricks(三十九)—— 使用 list comprehension 构造笛卡尔积

如果一个集合的大小为 mm,从集合中取 nn 次,可能的情况为 mnm^n 。>> s = [-1, 1] >> [(x, y) for x in s for y in s] [(-1, -1), (-1, 1), (1, -1), (1, 1)]

2016-04-24 13:12:01

阅读数:403

评论数:0

Tricks(三十八)—— 在不计算欧式距离的前提下判断点到两点的距离哪个更近

假设两点为 M0M_0, M1M_1,则两点的中点为 C=M0+M12C=\frac{M_0+M_1}2,设 M0M_0, M1M_1 连线外一点 XX,此时如何判断点 XX,离 M0M_0, M1M_1 哪个点更近(不允许使用欧式距离直接计算)。我们取中点 CC 与 XX 的连线(CX→\vec...

2016-04-20 12:59:14

阅读数:424

评论数:0

Tricks(三十七)—— C++ string类 split 的实现

<string> 文件中的 string 类是不具有 split(切分出字符串构成的数组)这一十分实用的成员函数的。使用其提供的 find 和 substr 两个核心成员函数,也可轻易实现 split 的功能。 vector<string> split(string&...

2016-04-15 14:17:06

阅读数:497

评论数:0

Tricks(三十六)—— remove_list_entry(无需 if 逻辑)

他山之石系列,阅读别人家的代码,学习逻辑的设计,变量的命名。 这是 TED 一期,对大神 Linus 的访谈;Node *head, *prev, *walk; void remove_list_entry(Node* entry) { prev = NULL; // walk 这一...

2016-04-14 22:46:14

阅读数:1987

评论数:4

Tricks(三十五)—— 内积的极简实现

内积,对应位相乘再相加; 用到了 map,用到了 reduce,用到了 zip,用到了 函数对象;import operatordef inner_product(x, y) reduce reduce(operator.add, map(lambda x: x[0]+x[1], zip(...

2016-04-13 09:24:21

阅读数:482

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭