由于参加了天池阿里云的比赛的原因,所以开始利用自己的业余时间开始研究机器学习的东西。机器学习的原理学了不少,所以利用python基本上也可以handle Machine Learning的东西,但是后来发现ML取得的成绩并不是很好,所以说我开始在有着机器学习的基础上去研究deep learning。
虽然很多人都说TensorFlow并不是很好学,比较晦涩难懂,导致了很多想Keras、tflearn的扩展包或者高级扩展库的出现,简化了许多Tensorflow的东西,但是我觉得个人的基础还算可以,也喜欢挑战,于是直接上手了Tensorflow。
以下简单记载学习心得并且加上学习资料。
吐槽+心得
- TensorFlow相当于一个python的接口,本质上还是C的内核。所以在python中操作时,需要把很多东西重新包装成一个合适的Object。所以出现了
tf.Variable tf.placeholder
等等的东西。 - 正如如上所说,除了对象需要重新构造。Kernel或者说运行界面当然也需要一个新的,所以出现了
tf.Session
-
Activation funciton
,有翻译成激励函数、激活函数,但实际上并不是去激活什么东西。仅仅是为了给线性的模型加入非线性的变化。例如Relu(Rectified Linear Unit, ReLU),有很多变式,但最基础的就是new_x = max(0,x)
。 -
tf.get_variable
与tf.Variable
差别还挺大,建议使用第一个。区别见reference第4条 - 关于Variable,我们要时刻记住Python仅仅是一个接口,这就意味着,当我们定义并赋值一个tf内的变量时,虽然我们以为我们重新赋值就可以覆盖,但其实不。tf内部会存在定义过的变量。所以要小心的使用三种定义方式。
tf.placeholder(); tf.Variable() ;tf.get_variable();