一.Jupyter Notebook快速上手指南
1).Jupyter计时
对于计时有两个十分有用的魔法命令:%%time 和 %timeit. 如果你有些代码运行地十分缓慢,而你想确定是否问题出在这里,这两个命令将会非常方便。
1.%%time 将会给出cell的代码运行一次所花费的时间。
%%time
import time
for _ in range(1000):
time.sleep(0.01)# sleep for 0.01 seconds
output:
CPU times: user 196 ms, sys: 21.4 ms, total: 217 ms
Wall time: 11.6 s
2.%time 将会给出当前行的代码运行一次所花费的时间。
import numpy
%time numpy.random.normal(size=1000)
output:
Wall time: 1e+03 µs
3.直接计时作差
import time
st1 = time.time()
要测运行时间的代码
st2 = time.time()
print('所用时间:',st2-st1)
4.%timeit 使用Python的timeit模块,它将会执行一个语句100,000次(默认情况下),然后给出运行最快3次的平均值。
import numpy
%timeit numpy.random.normal(size=100)
output:
12.8 µs ± 1.25 µs per loop (mean ± std. dev. of 7 runs, 100000 loops each)
2).在jupyter中使用终端命令
只需在命令前加个感叹号
该命令用于列出所有可用的 NVIDIA 设备信息。
GPU状态监测 nvidia-smi 命令详解
在进行深度学习实验时,GPU 的实时状态监测十分有必要。今天详细解读一下 nvidia-smi 命令。
这里写图片描述
上图是服务器上 GeForce GTX 1080 Ti 的信息,下面一一解读参数。
上面的表格中的红框中的信息与下面的四个框的信息是一一对应的:
GPU: | GPU 编号 |
---|---|
Name: | GPU 型号 |
Persistence-M: | 持续模式的状态。持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少,这里显示的是off的状态 |
Fan: | 风扇转速,从0到100%之间变动 |
Temp: | 温度,单位是摄氏度 |
Perf: | 性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能(即 GPU 未工作时为P0,达到最大工作限度时为P12) |
Pwr:Usage/Cap: | 能耗 |
Memory Usage: | 显存使用率 |
Bus-Id: | 涉及GPU总线的东西,domain: bus :device.function |
Disp.A: | Display Active,表示GPU的显示是否初始化 |
Volatile GPU-Util: | 浮动的GPU利用率 |
Uncorr. ECC: | Error Correcting Code,错误检查与纠正 |
Compute M: | compute mode,计算模式 |
下方的 Processes 表示每个进程对 GPU 的显存使用率。
3)Jupyter Notebook 的快捷键
二.python基础
1)format 格式化函数
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。
基本语法是通过 {} 和 : 来代替以前的 % 。
format 函数可以接受不限个参数,位置可以不按顺序。
实例
>>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序
'hello world'
>>> "{0} {1}".format("hello", "world") # 设置指定位置
'hello world'
>>> "{1} {0} {1}".format("hello", "world") # 设置指定位置
'world hello world'
也可以设置参数:
实例
#!/usr/bin/python
# -*- coding: UTF-8 -*-
print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))
# 通过字典设置参数
site = {
"name": "菜鸟教程", "url": "www.runoob.com"}
print("网站名:{name}, 地址 {url}".format(**site))
# 通过列表索引设置参数
my_list = ['菜鸟教程', 'www.runoob.com']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必须的
输出结果为:
网站名:菜鸟教程, 地址 www.runoob.com
网站名:菜鸟教程, 地址 www.runoob.com
网站名:菜鸟教程, 地址 www.runoob.com
也可以向 str.format() 传入对象:
实例
#!/usr/bin/python
# -*- coding: UTF-8 -*-
class AssignValue(object):
def __init__(self, value):
self.value = value
my_value = AssignValue(6)
print(