tensorflow学习心得

由于参加了天池阿里云的比赛的原因,所以开始利用自己的业余时间开始研究机器学习的东西。机器学习的原理学了不少,所以利用python基本上也可以handle Machine Learning的东西,但是后来发现ML取得的成绩并不是很好,所以说我开始在有着机器学习的基础上去研究deep learning。

虽然很多人都说TensorFlow并不是很好学,比较晦涩难懂,导致了很多想Keras、tflearn的扩展包或者高级扩展库的出现,简化了许多Tensorflow的东西,但是我觉得个人的基础还算可以,也喜欢挑战,于是直接上手了Tensorflow。

以下简单记载学习心得并且加上学习资料。

吐槽+心得

  1. TensorFlow相当于一个python的接口,本质上还是C的内核。所以在python中操作时,需要把很多东西重新包装成一个合适的Object。所以出现了tf.Variable tf.placeholder等等的东西。
  2. 正如如上所说,除了对象需要重新构造。Kernel或者说运行界面当然也需要一个新的,所以出现了tf.Session
  3. Activation funciton,有翻译成激励函数、激活函数,但实际上并不是去激活什么东西。仅仅是为了给线性的模型加入非线性的变化。例如Relu(Rectified Linear Unit, ReLU),有很多变式,但最基础的就是new_x = max(0,x)
  4. tf.get_variabletf.Variable差别还挺大,建议使用第一个。区别见reference第4条
  5. 关于Variable,我们要时刻记住Python仅仅是一个接口,这就意味着,当我们定义并赋值一个tf内的变量时,虽然我们以为我们重新赋值就可以覆盖,但其实不。tf内部会存在定义过的变量。所以要小心的使用三种定义方式。tf.placeholder(); tf.Variable() ;tf.get_variable();

Reference

  1. 个人认为较好的教程,适合刚接触Tensorflow的人,可以较快理解其基础
  2. Tensorfly的中文社区的文章,很多人都从这里的教程出发,但是这里的教程对完全的初学者实在不友好,像我吐槽中的1,2条都不知道就会很迷惑。但是这个感知机之类的理论基础说的还可以
  3. 激励函数的形象介绍,特指最多赞的那个,例子非常得到直观,也间接回答了为什么激励函数可以加入非线性因素,理解了例子可以外推
  4. tensorflow学习笔记(二十三):variable与get_variable
  5. RNN与LSTM的简单介绍

你可能感兴趣的:(tensorflow学习心得)