月度归档:2019年01月

Django tricks

关于 session

django.contrib.sessions.middleware | Django documentation | Django

session 是使用 cookie 来进行判断的,通过 session_cookie_name 来提取,然后通过 SessionStore() 来保存。

因此,Django 也是通过 sessionid 来区分用户;(或者其他什么名称)。

使用 cache 作为全局变量

cache.set(‘foo’, ‘bar’) # another function cache.get(‘foo’) # get ‘bar’

使用 cache , django-redis 是一个好方法。可以在使用 cache.lock变量,在应用层面加锁,来完成异步操作,还可以支持分布式应用,十分方便。

Ubuntu 多显示器方案

多显示器方案。
使用 `xrandr` ,输出当前存在的screen
Screen 0: minimum 8 x 8, current 7680 x 2160, maximum 16384 x 16384
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 connected 3840x2160+3840+0 (normal left inverted right x axis y axis) 510mm x 287mm
1920x1080 59.93*+ 59.94 
1680x1050 59.95 
1600x900 75.00 60.00 
1440x900 59.89 
1280x1024 75.02 70.00 60.02 
1280x720 59.94 
1152x864 75.00 
1024x768 75.03 70.07 60.00 
800x600 75.00 72.19 60.32 56.25 
720x480 59.94 59.94 
640x480 75.00 72.81 59.94 
DP-4 disconnected (normal left inverted right x axis y axis)
DP-5 disconnected (normal left inverted right x axis y axis)
eDP-1-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 380mm x 210mm
3840x2160 60.00*+ 59.97
找到命运的显示器,然后输入
xrandr --output eDP-1-1 --auto --output DP-3 --auto --scale 2x2 --right-of eDP-1-1
问题解决。
—-
2019-01-19 补充
不怎么 work,总是闪屏。。

My Keras tricks.

记录了一些使用 keras 的技巧。

categorical_crossentropy vs sparse_categorical_crossentropy.

3. The Answer, In a Nutshell

  • If your targets are one-hot encoded, use categorical_crossentropy.
  • Examples of one-hot encodings:
  • [1,0,0]
  • [0,1,0]
  • [0,0,1]
  • But if your targets are integers, use sparse_categorical_crossentropy.
  • Examples of integer encodings (for the sake of completion):
    • 1, 2, 3

clip norm


https://wulc.me/2018/05/01/%E6%A2%AF%E5%BA%A6%E8%A3%81%E5%89%AA%E5%8F%8A%E5%85%B6%E4%BD%9C%E7%94%A8/
可以加速 RNN 训练

Multiple GPU

# https://keras.io/utils/#multi_gpu_model#

使用多GPU,注意使用 save 的时候,传参传 model (multi_gpu_model的model参数)

Encode Labels

可以把不同的字符[‘aa’, ‘bb’, ‘cc’, ‘aa’] 编码成 [0, 1, 2, 0]

1
2
3
4
5
6
# encode class values as integers
encoder = LabelEncoder()
encoder.fit(Y)
encoded_Y = encoder.transform(Y)
# convert integers to dummy variables (i.e. one hot encoded)
dummy_y = np_utils.to_categorical(encoded_Y)

训练中存在的问题

训练性能低了别急着调参,首先看看数据预处理有没有问题,评价指标是不是写错了。再一个,batch norm 要勤快点加上。

相似的文章还有:https://svtter.cn/2018/02/01/keras%e5%9d%91/

为你的 Docker 项目集成 ELK

https://github.com/twtrubiks/docker-elk-tutorial

基本上按照这个配置就可以了,创建 @timestamp 这一步,可以用如下脚本替代 Postman

$ curl -XPOST -D- 'http://localhost:5601/api/saved_objects/index-pattern' \
    -H 'Content-Type: application/json' \
    -H 'kbn-version: 6.5.4' \
    -d '{"attributes":{"title":"logstash-*","timeFieldName":"@timestamp"}}'

这也是 tutorials 中,使用的 ELK images 给出的。

https://github.com/deviantony/docker-elk

继续阅读