TensorFlow源码分析(1):ConstantOp 创建常量Tensor

由于项目的原因,最近在学习TensorFlow的源码。刚面对TensorFlow源码时,遇到各种基本概念,千头万绪,无处着手。于是思虑许久,觉得应该先自底向上,从具体的操作开始,理清基本的概念和数据结构。有了一定的积累之后,再自顶向下,提纲挈领,通其概要。这样或许才是最高效的学习方法。

循着这样的思路,我选择了TensorFlow中最简单的一个操作,即ConstantOp作为切入点。顾名思义,ConstantOp的功能是创建一个常量Tensor。这或许是我们每一个学习使用TensorFlow的人,第一个试验的操作了。

它定义在tensorflow/core/kernels/constant_op.h文件中。这里需要注意的是,kernels目录是TensorFlow源码中最重要的目录。所有关于Tensor的具体操作,都定义在该目录下。kernel这个词,如果熟悉OpenCL的人一定不会陌生。在OpenCL中,kernel函数定义了计算设备(如GPU)上的具体操作。CPU通过调用kernel方法,来实现对计算设备的利用。TensorFlow中也借用了kernel的这一概念。

 

ConstantOp类的声明如下:

class ConstantOp : public OpKernel {
 public:
  explicit ConstantOp(OpKernelConstruction* ctx);
  void Compute(OpKernelContext* ctx) override;
  bool IsExpensive() override { return false; }
  ~ConstantOp() override;

 private:
  Tensor tensor_;
  T
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值