tensorflow/pytorch/mindspore在VGG16前向传播上的性能对比
首先说下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前向传播上的性能对比的更多相关文章
- 吴裕雄 python 神经网络——TensorFlow 三层简单神经网络的前向传播算法
import tensorflow as tf w1= tf.Variable(tf.random_normal([2, 3], stddev=1, seed=1)) w2= tf.Variable( ...
- Tomcat 7优化前及优化后的性能对比
Tomcat 7在我们日常开发.测试.生产环境都会使用到,但对于大部分开发人员来说,对其性能还是没有多大了解.本文就对它做一次性能测试,对比优化前后的性能区别. 一.运行环境 CPU: Intel(R ...
- TensorFlow笔记-04-神经网络的实现过程,前向传播
TensorFlow笔记-04-神经网络的实现过程,前向传播 基于TensorFlow的NN:用张量表示数据,用计算图搭建神经网络,用会话执行计算图,优化线上的权重(参数),得到模型 张量(tenso ...
- Tensorflow实现神经网络的前向传播
我们构想有一个神经网络,输入为两个input,中间有一个hidden layer,这个hiddenlayer当中有三个神经元,最后有一个output. 图例如下: 在实现这个神经网络的前向传播之前,我 ...
- tensorflow 模型前向传播 保存ckpt tensorbard查看 ckpt转pb pb 转snpe dlc 实例
参考: TensorFlow 自定义模型导出:将 .ckpt 格式转化为 .pb 格式 TensorFlow 模型保存与恢复 snpe tensorflow 模型前向传播 保存ckpt tensor ...
- Tensorflow笔记——神经网络图像识别(一)前反向传播,神经网络八股
第一讲:人工智能概述 第三讲:Tensorflow框架 前向传播: 反向传播: 总的代码: #coding:utf-8 #1.导入模块,生成模拟数据集 import t ...
- 实现属于自己的TensorFlow(一) - 计算图与前向传播
前段时间因为课题需要使用了一段时间TensorFlow,感觉这种框架很有意思,除了可以搭建复杂的神经网络,也可以优化其他自己需要的计算模型,所以一直想自己学习一下写一个类似的图计算框架.前几天组会开完 ...
- tensorflow学习笔记(1)-基本语法和前向传播
tensorflow学习笔记(1) (1)tf中的图 图中就是一个计算图,一个计算过程. 图中的constant是个常量 计 ...
- [源码解析]PyTorch如何实现前向传播(1) --- 基础类(上)
[源码解析]PyTorch如何实现前向传播(1) --- 基础类(上) 目录 [源码解析]PyTorch如何实现前向传播(1) --- 基础类(上) 0x00 摘要 0x01 总体逻辑 0x02 废弃 ...
- [源码解析]PyTorch如何实现前向传播(2) --- 基础类(下)
[源码解析]PyTorch如何实现前向传播(2) --- 基础类(下) 目录 [源码解析]PyTorch如何实现前向传播(2) --- 基础类(下) 0x00 摘要 0x01 前文回顾 0x02 Te ...
随机推荐
- 【现代 CSS】标准滚动条控制规范 scrollbar-color 和 scrollbar-width
Chrome 在 121 版本开始,原生支持了两个滚动条样式相关的样式 scrollbar-color 和 scrollbar-width. 要知道,在此前,虽然有 ::-webkit-scrollb ...
- springmvc组件说明
DispatcherServlet:前端控制器,也称为中央控制器,它是整个请求响应的控制中心,组件的调用由它统一调度. HandlerMapping:处理器映射器,它根据用户访问的 URL 映射到对应 ...
- Prometheus + Grafana (2) mysql、redis、Docker容器、服务端点以及预警
接着上一节 <Prometheus + Grafana (1) 监控 >,我们继续探讨 Prometheus + Grafana 的复杂应用 实现目标 这节我们的目标是搭建一个多维度监控微 ...
- Interceptor拦截器demo
Interceptor拦截器demo ##接口测试类 @RestController public class TestController { @RequestMapping(value = &qu ...
- 又跳槽!3年Java经验收割成都大厂的面试心得(干货满满&文末有福利)
中厂->阿里->字节,成都->杭州->成都 系列文章目录和关于我 0.前言 笔者在不足两年经验的时候从成都一家金融科技中厂跳槽到杭州阿里淘天集团,又于今年5月份从杭州淘天跳槽到 ...
- python 使用pandas修改数据到excel,报“SettingwithCopyWarning A value is trying to be set on a copy of a slice from a DataFrame”的解决方法
场景: 通过pandas模块,将测试数据回写到excel,测试数据有写到excel文件,但控制台输出警告信息如下 警告: SettingwithCopyWarning A value is tryin ...
- ansible v2.9.9离线安装脚本
链接:https://pan.baidu.com/s/18uxyWWyJ39i1mJJ1hb8zww?pwd=QWSC 提取码:QWSC
- Sql Server中Cross Apply关键字的使用
Sql Server中Cross Apply关键字的使用 前言 在写一个业务的时候,有1列数据如下: 车牌号 湘A00001/湘G00001 湘A00002/湘G00002 湘A00003/湘G000 ...
- 移植 uCos-III 3.03 到 STM32F429 上
背景 通过STM32 的学习,我们可以往更深层次的地方走,尝试系统上的一些开发. STM32: F429(StdPeriph) uCos-III : v3.04 + 3.03 有关说明: 在移植 3. ...
- 含税168元起!四核A53+NPU+PCIe+USB3.0,瑞芯微RK3562性价比真高!