前言
之前说了在Tensorflow源码研究的时候需要遵守的一些原则,这些原则是对不熟悉的内容进行操作的时候都应该遵守的。
接下来将继续回归正题。我当前的目标是找到tf框架中对Relu函数求偏导的代码所在,借此来理解tf底层的大致工作流程的。
以下的操作是我在第一次编译完了tensorflow的基础之后操作的。
当前思路
要找到处理Relu函数求偏导时,tf的源码的执行路径,我们不可避免的要对源码进行操作。目前的思路是运行一个使用了relu函数作为激活函数的Tensorflow程序。运行的过程中寻找Tensorflow底层的执行路径。也就是说,我们需要找到包含relu激活程序的py文件在运行的过程中所用到的所有底层C++文件,由此来一层层的找到Relu函数求偏导的代码所在。
要完成这一点,接下来想分两步走:
(1) 修改源码中的C++文件,在其中添加输出语句,根据编译py文件时有没有输出该语句来判断是否执行到了该C++文件。
(2) 对Tensorflow的源码大体结构有一个形象的理解,从而方便对源码中的执行路径进行追踪。
第二点是一个长期的学习过程,所以首先要学会第一点的操作方法,本文便是记录了修改源码后编译Tensorflow的过程。
添加输出语句
随便写一段最简单的Tensorflow代码.
import tensorflow as tf
x=tf.constant(1)
y=tf.constant(2)
z=x+y
sess=tf.Ses