Tensorflow运行报错'Could not load dynamic library libcudnn.so.8'

Tensorflow运行报错'Couldnotloaddynamiclibrarylibcudnn.so.8',该报错是由于没有cudnn导致,可以在https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html这个页面找到安装方法。cudnn文件可以在https://developer.nvidia.com/rdp/cudnn-archive去下载,注意需要下载对应cuda版本的cudnn我们如果cuda版本是12.0,则下载12.0下对应系统架构的tar...

阅读全文

评估AI性能的python库ai-benchmark

AIBenchmarkAlpha是一个开源的python库,用于评估各种硬件平台的AI性能,包括cpu,gpu和tpu。该基准依赖于TensorFlow机器学习库,并为评估关键深度学习模型的推理和训练速度提供了一个轻量级和准确的解决方案。我们来看下如何使用pip install tensorflow-gpu pip install ai-benchmark需要安装上述两个包,安装完成以后我们需要,给ai-benchmark执行权限chmod + /usr/local/bin/...

阅读全文

ubuntu20.04安装tensorrt

目前从tensorrt官网上只能找到ubuntu18.04的版本,但是我的操作系统是ubuntu20.04,实际上直接尝试直接安装ubuntu18.04的版本,这边测试是没有问题官网下载地址:https://developer.nvidia.com/nvidia-tensorrt-download我下载的是TensorRT7这个版本,根据自己需要选择cuda、tensorrt对应的版本,我下载的是这个版本https://developer.nvidia.com/compute/machine-learning/tensorrt/secure/7.2.3...

阅读全文

TensorFlow运行报错illegal instruction (core dumped)

搜索了相关资料,导致该错误可能是没有avx指令集,或者是CPU不支持avx指令集因为我本地是虚拟机上部署的k8s集群,有可能CPU虚拟化没有做指令集的直通,那么我尝试修改KVM虚拟机配置首先我们关闭虚拟机,然后使用virsh命令对虚拟机配置进行修改virsh edit k8s-node2找到  <cpu mode='custom' match='exact' check='none'>   &...

阅读全文

ubuntu20.04安装horovod

Horovod是一套支持TensorFlow,Keras,PyTorch,andApacheMXNet的分布式训练框架,由Uber构建并开源的第三方库,在分布式训练中性能优于原生像Tensorflow这种ps,worker架构,且代码改动量少,无需在多个节点多次执行脚本命令,使用起来方便。首先我们需要安装nccl可以去官网查找对应版本,https://developer.nvidia.com/nccl/nccl-legacy-downloads我下的ubuntu20.04这个版本,直接安装dpkg -i nccl-l...

阅读全文

pytorch中数据并行DP和DDP的区别

在pytorch中数据并行训练涉及到nn.DataParallel和nn.parallel.DistributedDataParallel两个模块,也就是DP和DDP数据并行的含义每个GPU复制一份模型,将一批样本分为多份输入各个模型并行计算当一张GPU可以存储一个模型时,可以采用数据并行得到更准确的梯度或者加速训练,因为求导以及加和都是线性的,数据并行在数学上也有效1.DPDP使用数据并行的方式只需要将原来单卡的module用DP改成多卡model = nn.DataParallel(model)DP基于单机多卡,所有设备...

阅读全文

tensorflow保存和加载PB模型文件

谷歌推荐的保存模型的方式是保存模型为PB文件,它具有语言独立性,可独立运行,封闭的序列化格式,任何语言都可以解析它,它允许其他语言和深度学习框架读取、继续训练和迁移TensorFlow的模型它的主要使用场景是实现创建模型与使用模型的解耦,使得前向推导inference的代码统一另外的好处是保存为PB文件时候,模型的变量都会变成固定的,导致模型的大小会大大减小,适合在手机端运行还有一个就是,真正离线测试使用的时候,PB格式的数据能够保证数据不会更新变动,就是不会进行反馈调节保存称为这种PB文件主要使用tf.SaveModelBuilder类来完成...

阅读全文

深度学习基础Epoch/batchsize/iterations等词解析

神经网络的训练梯度下降法学习率:步长更大=学习率更高误差函数不断减小。如果训练数据过多,无法一次性将所有数据送入计算。现将数据分成几个部分:batch分多个batch,逐一送入计算训练Epoch一个epoch,表示:所有的数据送入网络中,完成了一次前向计算+反向传播的过程。由于一个epoch常常太大,分成几个小的baches.将所有数据迭代训练一次是不够的,需要反复多次才能拟合、收敛。在实际训练时、将所有数据分成多个batch,每次送入一部分数据。使用单个epoch更新权重不够。随着epoch数量的增加,...

阅读全文

pytorch中使用一些使用GPU基本操作

在使用单机多卡的时候我们会经常遇到一些GPU的操作,例如查询当前有几块GPU卡,GPU卡名字,如何在torch中使用多卡等问题,下面我们先进行一些基础的学习,这里不再赘述如何安装torch,可以看我之前的笔记。一些常用的方法判断cuda是否可用torch.cuda.is_available()获取GPU卡的数量torch.cuda.device_count()获取当前设备的索引torch.cuda.current_device()获取GPU卡的名字torch.cuda.get_device_name(0)下面我们来上一些简单的代码查看下import&nb...

阅读全文