首先说下mindspore,作为华为的主打软件产品,该计算框架可用性一直较差,不同版本不同计算硬件下的代码往往都不是完全兼容的,也就是说你在mindspore的官网上找到的VGG预训练模型的代码是mindspore-1.5.0的版本在ascend平台的,如果你用mindspore-gpu-1.9.0的版本就无法运行,这是mindspore最常见的错误问题,因此mindspore在VGG16前向传播的性能表现为零,因为根本就无法运行官方的源代码,除非你手动去修改mindspore的框架代码,这事情我去年是会这么干的,今年我说啥也不会干了。如果你给一个开源的产品提了N多的意见,结果过好久一看,啥变化没有,如果非说有变化那就是变得越来越差了,那估计换谁也都不会支持了。

TensorFlow这里使用的是1.14.0版本,由于TensorFlow在1.x和2.x之间上的巨大差异,以及2.x版本的较差使用性,因此这里使用的是TensorFlow的作为经典的版本1.14.0,当然并没有使用TensorFlow的最新版本来比较对于TensorFlow来说并不很公平,但是TensorFlow2.x版本的相关代码和技术博客基本已经从互联网上绝迹,作为一个几乎要濒临灭绝的计算框架在这里使用旧版本也是实属无奈。相关代码参考:

【转载】 Tensorflow如何直接使用预训练模型(vgg16为例)

Pytorch

运行版本gpu1.13.0:

import torch
from torchvision import datasets, models, transforms
import numpy as np # with torch.no_grad():
# model_ft = models.vgg16(pretrained=True).to("cuda:1")
model_ft = models.vgg16(pretrained=True).to("cuda:1") batchsize=32 import time
a_time = time.time()
for _ in range(500):
images = np.random.random(batchsize*224*224*3).reshape(batchsize,3,224,224)
model_ft(torch.tensor(images, dtype=torch.float32, device='cuda:1')) print(time.time()-a_time)

=====================================

运行硬件平台:

CPU: 5.0Ghz下的因特尔10700k

GPU: RTX2070SUPER

其他参数:

batch_size=32

迭代次数:500

对比结果:

mindspore-gpu-1.9.0版本的性能表现:0分(根本无法运行)

TensorFlow-gpu-1.14.0版本的性能表现:用时170秒

Pytorch-gpu-1.13.0版本的性能表现:用时42秒

 

================================================

PS: 可以看到在现如今的深度学习框架问题上,不论是易用性还是整体性能上pytorch都已经成为了当之无愧的NO.1,虽然TensorFlow也还能用,不过已经在多个方面上被pytorch超越了,如果非说pytorch有不如TensorFlow的地方那估计也就是曾经的历史遗留的项目了,而至于mindspore的gpu版本这里基本可以认为是不可用的状态,当然mindspore框架的主要定位目标平台是ascend平台,所以或许mindspore在ascend平台上会有截然不同的表现也是不可知晓的。

---------------------------------------------------

tensorflow/pytorch/mindspore在VGG16前向传播上的性能对比的更多相关文章

  1. 吴裕雄 python 神经网络——TensorFlow 三层简单神经网络的前向传播算法

    import tensorflow as tf w1= tf.Variable(tf.random_normal([2, 3], stddev=1, seed=1)) w2= tf.Variable( ...

  2. Tomcat 7优化前及优化后的性能对比

    Tomcat 7在我们日常开发.测试.生产环境都会使用到,但对于大部分开发人员来说,对其性能还是没有多大了解.本文就对它做一次性能测试,对比优化前后的性能区别. 一.运行环境 CPU: Intel(R ...

  3. TensorFlow笔记-04-神经网络的实现过程,前向传播

    TensorFlow笔记-04-神经网络的实现过程,前向传播 基于TensorFlow的NN:用张量表示数据,用计算图搭建神经网络,用会话执行计算图,优化线上的权重(参数),得到模型 张量(tenso ...

  4. Tensorflow实现神经网络的前向传播

    我们构想有一个神经网络,输入为两个input,中间有一个hidden layer,这个hiddenlayer当中有三个神经元,最后有一个output. 图例如下: 在实现这个神经网络的前向传播之前,我 ...

  5. tensorflow 模型前向传播 保存ckpt tensorbard查看 ckpt转pb pb 转snpe dlc 实例

    参考: TensorFlow 自定义模型导出:将 .ckpt 格式转化为 .pb 格式 TensorFlow 模型保存与恢复 snpe tensorflow 模型前向传播 保存ckpt  tensor ...

  6. Tensorflow笔记——神经网络图像识别(一)前反向传播,神经网络八股

      第一讲:人工智能概述       第三讲:Tensorflow框架         前向传播: 反向传播: 总的代码: #coding:utf-8 #1.导入模块,生成模拟数据集 import t ...

  7. 实现属于自己的TensorFlow(一) - 计算图与前向传播

    前段时间因为课题需要使用了一段时间TensorFlow,感觉这种框架很有意思,除了可以搭建复杂的神经网络,也可以优化其他自己需要的计算模型,所以一直想自己学习一下写一个类似的图计算框架.前几天组会开完 ...

  8. tensorflow学习笔记(1)-基本语法和前向传播

    tensorflow学习笔记(1) (1)tf中的图 图中就是一个计算图,一个计算过程.                                       图中的constant是个常量 计 ...

  9. [源码解析]PyTorch如何实现前向传播(1) --- 基础类(上)

    [源码解析]PyTorch如何实现前向传播(1) --- 基础类(上) 目录 [源码解析]PyTorch如何实现前向传播(1) --- 基础类(上) 0x00 摘要 0x01 总体逻辑 0x02 废弃 ...

  10. [源码解析]PyTorch如何实现前向传播(2) --- 基础类(下)

    [源码解析]PyTorch如何实现前向传播(2) --- 基础类(下) 目录 [源码解析]PyTorch如何实现前向传播(2) --- 基础类(下) 0x00 摘要 0x01 前文回顾 0x02 Te ...

随机推荐

  1. vue目录文件结构

    my-vue-app/ ├── node_modules/ # 依赖的第三方模块 ├── public/ # 公共文件,不会被打包 │ ├── index.html # 应用的入口 HTML 文件 │ ...

  2. python sweetviz_数据分析及解决报告图表中文乱码

    python sweetviz_数据分析 python 做数据分析,传入数据进去,就可以使用python现有的插件,进行数据分析,生成数据分析的报表,可以将复杂的数据,通过图表的形式,清晰将数据展示出 ...

  3. 配置h5py、netCDF4库的方法:Anaconda环境

      本文介绍基于Anaconda环境,下载并安装Python中h5py与netCDF4这两个模块的方法.   在Python语言中,h5py与netCDF4这两个模块是与遥感图像处理.地学分析等GIS ...

  4. Gitbook的安装和部署

    安装 npm install gitbook-cli -g gitbook命令: gitbook init //初始化目录文件 gitbook help //列出gitbook所有的命令 gitboo ...

  5. TI AM62x工业核心板规格书(单/双/四核ARM Cortex-A53 + 单核ARM Cortex-M4F,主频1.4GHz)

    1 核心板简介 创龙科技SOM-TL62x是一款基于TI Sitara系列AM62x单/双/四核ARM Cortex-A53 + 单核ARM Cortex-M4F异构多核处理器设计的高性能低功耗工业级 ...

  6. GaussDB(DWS)性能调优,解决DM区大内存占用问题

    本文分享自华为云社区<GaussDB(DWS)性能调优:DM区优化案例--维度表关联条件存在会计期>,作者: O泡果奶~. 当前DM(P1.P3.CBGDM)存在维度表与主表关联时使用会计 ...

  7. Spring注解之参数校验@Validated和@Valid

    @Validated和@Valid的区别 Spring Validation验证框架对参数的验证机制提供了@Validated(Spring's JSR-303 规范,是标准 JSR-303 的一个变 ...

  8. Mac 完整卸载mysql

    依次执行 cd ~ sudo rm /usr/local/mysql sudo rm -rf /usr/local/mysql* sudo rm -rf /Library/StartupItems/M ...

  9. 「悬浮捷径SoftCircle」安卓平台的hao123,一键打开万物

    罗老师的onestep一步发布之前, 终端的打开形式还拘泥于桌面和负一屏 这种方式够简洁,但缺点明显: 1.入口单一性:只能在app首页和各种扫一扫之间选择和切换 2.操作复杂:入口切换需要频繁的进入 ...

  10. el-date-picker的value-forma在Element UI (Vue 2)和Element Plus (Vue 3)中的不同

    Element UI (Vue 2): <template> <el-form-item prop="register_date" label="成立日 ...