长飞哥 2017-12-25 08:50 采纳率: 50%
浏览 1362
已结题

caffe中blob对数据的处理

下面是caffe官方中文译本介绍blob的一个示例,一直没明白,请大牛指导,谢谢。
比如foo = blob.cpu_data(); // 没有数据复制,两者都有最新的内容
为什么没有数据复制,为什么是最新内容,其他行也是很不解

// 假定数据在 CPU 上进行初始化,我们有一个 blob
const Dtype* foo;
Dtype* bar;
foo = blob.gpu_data(); // 数据从 CPU 复制到 GPU
foo = blob.cpu_data(); // 没有数据复制,两者都有最新的内容
bar = blob.mutable_gpu_data(); // 没有数据复制
// ... 一些操作 ...
bar = blob.mutable_gpu_data(); // 仍在 GPU,没有数据复制
foo = blob.cpu_data(); // 由于 GPU 修改了数值,数据从 GPU 复制到 CPU
foo = blob.gpu_data(); // 没有数据复制,两者都有最新的内容
bar = blob.mutable_cpu_data(); // 依旧没有数据复制
bar = blob.mutable_gpu_data(); // 数据从 CPU 复制到 GPU
bar = blob.mutable_cpu_data(); // 数据从 GPU 复制到 CPU

  • 写回答

1条回答 默认 最新

  • threenewbee 2017-12-26 04:37
    关注

    其实这里用“复制”这个词不好,应该用“同步”。也就是说让gpu和cpu拥有相同的数据。
    如果数据不同,那么同步的办法是复制,如果数据已经是相同的,那么同步就不用复制了。

    评论

报告相同问题?

悬赏问题

  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗