长飞哥 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拥有相同的数据。
    如果数据不同,那么同步的办法是复制,如果数据已经是相同的,那么同步就不用复制了。

    评论

报告相同问题?

悬赏问题

  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码