PyTorch
概述
Torch 的 Python版本,Facebook 开源的神经网络框架,专门针对GPU加速的 DNN 编程。Torch 语言采用LUA,而 TensorFlow 支持Python,因而 PyThorch 被开发出来以提升竞争力。
工作流程非常接近 Numpy。
优缺点
优点:上手容易、代码简洁、发展迅速,现已支持 TPU、API 相对稳定。
缺点:没有 Keras API 那样简洁、一些功能比较难以实现。
安装Anaconda
Anaconda 是一个开源的 Python 发行版本,包含了大量的科学包及其依赖项。它是一个开源的包、环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并在不同的环境之间切换。
进入 Anaconda 官网(www.anaconda.com),选择Products,Individual Edition。
在右侧选择版本来下载,Windows 版直接点绿色按钮就可以,MacOS 和 Linux 版本在页面底部也都有。
下载完成后打开安装程序安装,这里注意可以修改安装路径,并且后面的添加环境变量一定要勾选。
完成后,按下 win 键,输入 anaconda,打开 Anaconda Prompt 窗口,执行命令:
conda create -n pytorch python=3.8
其中 python 版本根据你下载 anaconda 时选择的版本来。
当中要你输入(Y/N),输入 y 确定。
安装完成,还是比较顺利的。
安装 PyTorch
进入官网 pytorch.org,点上面的Get Started。
找到这个红白表格,点选你要的版本,在最后一行复制安装命令。
打开一个控制台窗口,把命令粘贴进去,按下回车,即可安装 PyTorch。
同样输入 y 确认,等待安装完成。
随后安装 pytorch 和 torchvision:
conda install PyTorch-cpu=0.4.0
conda install torchvision-cpu
为了验证安装成功,可以在控制台输入 python 进入 python 解释器,再输入 import torch
,若无出错即为安装成功。
PyTorch 实验
张量
初始化张量
-
从 list 创建
data = [[1, 2], [3, 4]] x_data = torch.tensor(data)
-
从 NumPy 数组创建
np_array = np.array(data) x_np = torch.from_numpy(np_array)
-
从另一个张量拷贝
x_ones = torch.ones_like(x_data) # 保留属性 print(f"Ones Tensor:\n{x_ones}\n") x_rand = torch.rand_like(x_data, dtype = torch.float) # 覆盖属性 print(f"Random Tensor:\n{x_rand}\n")
除非明确覆盖,否则新张量将保留参数张量的属性(形状、数据类型)。
上面例子中的
torch.ones_like()
创建一个元素皆为一的张量,而torch.rand_like
创建元素皆为 [0, 1) 之间随机数的张量,由于指定了 datatype,因而数据类型变为了 float。官方文档中给出了清楚的解释:
torch.rand_like(input)
is equivalent totorch.rand(input.size(), dtype=input.dtype, layout=input.layout, device=input.device)
. -
shape是张量尺寸的元组
shape = (2,3,) rand_tensor = torch.rand(shape) # 创建一个2*3的张量
张量运算
张量运算包括算术、线性代数、矩阵处理(转置、标引、切片)、采样等。
索引和切片
tensor = torch.ones(4, 4)
print('First row:', tensor[0])
print('First column:', tensor[:, 0])
print('Last column:', tensor[..., -1])
tensor[:, 1] = 0
print(tensor)
控制台输出如下:
连接张量
t1 = torch.cat([tensor, tensor, tensor], dim = 1)
print(t1)
这里将 tensor 与自身做了两次连接,dim = 1代表横向。
OpenVINO
下面围绕 OpenVINO 的环境搭建。
下载OpenVINO
地址:英特尔® 发行版 OpenVINO™ 工具套件 (intel.com)
需要保证网速,点击下载之后还要注册,注册完了才能下载。
下载完成后打开 exe ,选择解压路径,点击 extract 进行解压。解压完成后会自动打开其中的 install.exe,
照例选择安装路径,点击 next。
这里提示有缺失的依赖项,不过没关系,可以等安装完成后再补。
(缺失的依赖项照教程上是要跟着 Intel 提供的引导网页来装,不过这个网页似乎并不好用,可以在这里截个图记下来,方便后续也可以自己照着网上的教程安装)
环境搭建
点击 Finish 完成后,在 cmd 中进入到安装目录中的 bin 文件夹,输入 setupvars.bat 即可在本次运行中启动 Open VINO。
命令行一定要用管理员模式打开,不然后面运行示例时 cmake 会报错。
接下来配置 Model Optimizer:
进到 \deployment_tools\model_optimizer\install_prerequisites 目录,运行 install_prerequisites.bat。
验证示例
这玩意坑有点多,可以运行一下看看,实在运行不了就算了:)
如果要运行,建议运行 demo_security_barrier_camera.bat 这个示例,因为另一个 demo_squeezenet_download_convert_run.bat 由于网络原因很难下载成功。
进入到 \deployment_tools\demo 目录下运行 demo_security_barrier_camera.bat,如果最后显示 success 就是配置成功了。
另外,推荐 https://www.bilibili.com/video/BV1iZ4y1K7nL?p=1 这个 up 关于 OpenVINO 的讲解很不错,还有关于示例 bat 文件的具体讲解,值得一看。