实用技巧总结

Posted by Daryl on January 25, 2019

杂七杂八的东西就都写在这了。不断更新中…

keras限制显存

import tensorflow as tf
from keras.backend.tensorflow_backend import set_session
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.3
set_session(tf.Session(config=config))

指定GPU

可以在shell中 export CUDA_VISIBLE_DEVICES=0,1,2 或者在python中

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0,1,2"

python字典按value排序

d = dict()
...
sorted_d = sorted(d.items(), key=lambda x:x[1])

打印python对象中所有成员

from pprint import pprint
pprint(vars(obj))

在同一行更新信息

其实只需要在打印字符串的时候前置一个\r即可,而且不能换行(需要显示指定print函数的end参数),比如如下代码即可达到每隔一秒在同一行更新打印信息的作用:

for i in range(10):
    print('\r%d' % i, end='')
    time.sleep(1)

保留分隔符的分割方式

有的时候需要用句子里的逗号,和句号。对句子进行分割,多分隔符的情况可以用正则表达式re.split('[,。]', ...),但如果要保留分隔符呢?因为有的时候需要断句,把一个文章里的句子分出来,逗号和句号对句子的语义影响还是挺大的。这时就可以在正则表达式外面套一个小括号

In [118]: re.split('([,。])', '你好,世界。我不好,世界。')
Out[118]: ['你好', ',', '世界', '。', '我不好', ',', '世界', '。', '']