直接从 TensorFlow 访问 PyTorch GPU 矩阵

     2023-03-12     294

关键词:

【中文标题】直接从 TensorFlow 访问 PyTorch GPU 矩阵【英文标题】:Accessing PyTorch GPU matrix from TensorFlow directly 【发布时间】:2019-06-23 22:38:27 【问题描述】:

我有一个用 PyTorch 编写的神经网络,它在 GPU 上输出一些张量 a。我想继续使用高效的 TensorFlow 层处理a

据我所知,这样做的唯一方法是将a 从 GPU 内存移动到 CPU 内存,转换为 numpy,然后将其输入 TensorFlow。一个简化的例子:

import torch
import tensorflow as tf

# output of some neural network written in PyTorch
a = torch.ones((10, 10), dtype=torch.float32).cuda()

# move to CPU / pinned memory
c = a.to('cpu', non_blocking=True)

# setup TensorFlow stuff (only needs to happen once)
sess = tf.Session()
c_ph = tf.placeholder(tf.float32, shape=c.shape)
c_mean = tf.reduce_mean(c_ph)

# run TensorFlow
print(sess.run(c_mean, feed_dict=c_ph: c.numpy()))

这可能有点牵强,但有办法做到这一点

    a 永远不会离开 GPU 内存,或者 a 从 GPU 内存到固定内存再到 GPU 内存。

我尝试 2. 在上面使用 non_blocking=True 剪切的代码中,但我不确定它是否符合我的预期(即将其移动到固定内存)。

理想情况下,我的 TensorFlow 图会直接在 PyTorch 张量占用的内存上运行,但我认为这是不可能的?

【问题讨论】:

【参考方案1】:

我不熟悉 tensorflow,但您可以使用 pyTorch 来公开张量的“内部结构”。 你可以访问一个张量的底层storage

a.storage()

一旦有了存储空间,就可以获得指向内存(CPU 或 GPU)的指针:

a.storage().data_ptr()

你可以检查它是否被固定

a.storage().is_pinned()

你可以把它钉住

a.storage().pin_memory()

我不熟悉 pyTorch 和 tensorflow 之间的接口,但我遇到了一个包 (FAISS) 的 example,它直接访问 GPU 中的 pytorch 张量。

【讨论】:

在 pytorch 端,x.storage().data_ptr() 方法将数据指针作为 python 整数返回。不知道如何在 TF 端使用它。另外,要检查的一件事是计算是否在同一个 CUDA 流中执行,否则计算可能不同步。 @MatthijsDouze faiss 建议使用res.syncDefaultStreamCurrentDevice(),其中res 是当前计算资源的句柄。

手动从 Tensorflow 导入 LSTM 到 PyTorch

】手动从Tensorflow导入LSTM到PyTorch【英文标题】:ImportLSTMfromTensorflowtoPyTorchbyhand【发布时间】:2019-08-0907:25:51【问题描述】:我正在尝试将预训练模型从tensorflow导入PyTorch。它接受单个输入并将其映射到单个输出。当我尝试导入LSTM... 查看详情

如何从 pytorch/tensorflow 中的图像中提取补丁成 4 个相等的部分?

】如何从pytorch/tensorflow中的图像中提取补丁成4个相等的部分?【英文标题】:Howtoextractpatchesfromanimageinpytorch/tensorflowinto4equalparts?【发布时间】:2022-01-1911:01:57【问题描述】:我使用的是16x16彩色图像;我为此编写了小代码,但无... 查看详情

初识pytorch:从安装到入门,从入门到放弃(代码片段)

...ok团队于2017年1月发布的一个深度学习框架,虽然晚于TensorFlow,也没有TensorFlow火,但目前已经与TensorFlow奇虎相当。而且PyTorch采用了Python语言的接口,可以说它才是Python程序员最容易上手的深度学习框架。它就像GP... 查看详情

pytorch打败tensorflow

文|郭华2015年,Google发布了机器学习框架TensorFlow,凭借其在技术上无可争议的统治地位,TensorFlow迅速成为这一领域的霸主。2017年,TensorFlow如日中天之际,Facebook发布了PyTorch,谁也没有想到,短短四年... 查看详情

如何高效入门pytorch?深度学习框架是pytorch还是tensorflow?(代码片段)

...来谈谈,如何选个合适的教程,避开它们。一、Tensorflow VS  PyTorch    在这之前,有一个问题肯定困惑大家很久了,2021年了,TensorFlow和PyTorch两个深度学习框架学哪个好呢   ​没有水晶球,我也不知道... 查看详情

从tensorflow到pytorch:九大深度学习框架哪款最适合你?

开源的深度学习神经网络正步入成熟,而现在有许多框架具备为个性化方案提供先进的机器学习和人工智能的能力。那么如何决定哪个开源框架最适合你呢?本文试图通过对比深度学习各大框架的优缺点,从而为各位读者提供一... 查看详情

2022年了,pytorch和tensorflow选哪个?

...a;RyanO'Connor,来源:机器之心坊间传闻:「TensorFlow适合业界,PyTorch适合学界」。都2022年了,还是这样吗?2022年了,你是选PyTorch还是TensorFlow?之前有一种说法:TensorFlow适合业界,PyTorch... 查看详情

pytorch与tensorflow怎么选

PyTorch和TensorFlow是目前最主流的两个深度学习框架,绝大多数研究者会选择PyTorch或者TensorFlow进行深度学习的入门学习。图1展示了近两年来几个主流深度学习框架的Google指数,其中PyTorch和TensorFlow的热度不相上下,均... 查看详情

Tensorflow 2.0:从回调中访问批次的张量

】Tensorflow2.0:从回调中访问批次的张量【英文标题】:Tensorflow2.0:Accessingabatch\'stensorsfromacallback【发布时间】:2019-11-2103:09:08【问题描述】:我正在使用Tensorflow2.0并尝试编写一个tf.keras.callbacks.Callback来读取我的批处理的model的输... 查看详情

如何在 pytorch 和 tensorflow 中使用张量核心?

】如何在pytorch和tensorflow中使用张量核心?【英文标题】:Howtousetensorcoresinpytorchandtensorflow?【发布时间】:2021-12-2823:30:01【问题描述】:我正在使用带有张量核心的NvidiaRTXGPU,我想确保pytorch/tensorflow正在使用它的张量核心。我在... 查看详情

1.pytorch是什么?(代码片段)

...U为什么PyTorch在研究人员中如此受欢迎PyTorch是否优于Keras/TensorFlow是否应该在项目中使用PyTorch或Keras/TensorFlow1.PyTorch是什么PyTorch是一个开源机器学习库,专门从事张量计算、自动微分和GPU加速(tensorcomputations,automaticdifferent... 查看详情

简单介绍一下tensorflow与pytorch的相互转换(主要是tensorflow转pytorch)(代码片段)

本文以一段代码为例,简单介绍一下tensorflow与pytorch的相互转换(主要是tensorflow转pytorch),可能介绍的没有那么详细,仅供参考。由于本人只熟悉pytorch,而对tensorflow一知半解,而代码经常遇到tensorflow... 查看详情

tensorflow与pytorch张量互转(代码片段)

1、tensorflow张量转pytorch张量tensorflow(Tensor)–>numpy.ndarray–>pytorch(Tensor)importtorchimporttensorflowastftf_tensor=tf.constant([1,2,3])withtf.compat.v1.Session().as_default(): np_array=t 查看详情

tensorflow与pytorch张量互转(代码片段)

1、tensorflow张量转pytorch张量tensorflow(Tensor)–>numpy.ndarray–>pytorch(Tensor)importtorchimporttensorflowastftf_tensor=tf.constant([1,2,3])withtf.compat.v1.Session().as_default(): np_array=t 查看详情

tensorflow和pytorch模型之间转换

参考链接:https://github.com/bermanmaxim/jaccardSegment/blob/master/ckpt_to_dd.py一.tensorflow模型转pytorch模型importtensorflowastfimportdeepdishasddimportargparseimportosimportnumpyasnpdeftr(v):#tensorflowweigh 查看详情

将 GRU 层从 PyTorch 转换为 TensorFlow

】将GRU层从PyTorch转换为TensorFlow【英文标题】:ConvertingGRUlayerfromPyTorchtoTensorFlow【发布时间】:2021-12-0809:45:49【问题描述】:我正在尝试将以下GRU层从PyTorch(1.9.1)转换为TensorFlow(2.6.0):#GRUlayerself.gru=nn.GRU(64,32,bidirectional=True,num_layers=... 查看详情

一线开发者在reddit上讨论深度学习框架:pytorch和tensorflow到底哪个更好?

本文标签:  机器学习TensorFlowGoogle深度学习框架分布式机器学习PyTorch 近日,Reddit用户cjmcmurtrie发了一个主题为「PyTorchvs.TensorFlow」的讨论帖,想要了解这两大流行的框架之间各自有什么优势。原帖地址:https://redd.it/5w... 查看详情

[转]pytorch指定gpu(代码片段)

...定其他GPU。有如下两种方法来指定需要使用的GPU。1.类似tensorflow指定GPU的方式,使用CUDA_VISIBLE_DEVICES。1.1直接终端中设定:CUDA 查看详情