在使用tensorflow实现机器学习算法的程序中,需要有哪些基本组成部分?
做机器学习的入门还是挺难的,除了需要晦涩的数学公式之外,还在代码实现上有许多挑战,那么,么一个tensorflow实现一个机器学习程序,其到底需要哪些部分?
这里就以线性拟合为例子,本教程参考了莫烦python的教程,看了之后作为自己总结,把其中一些关键的信息拎出来。
首先,我们有一些输入数据,需要用一根曲线去拟合它的目标,也就是训练w与b使得y=wx+b。
那么,我们主要的部分为:有变量来充当这些输入数据。然后会有优化的目标函数,从而定义损耗函数以及优化策略。
tensorflow的设计者们将这个过程比拟为一个图性。
输入数据位于图的输入端,有时我们可能会反复的迭代,也就是输入数据会不断变化。那么,就给输入数据一个位置,然后将自己要输入的数据对应上即可。有点像先安装一个插座,然后接自己的线。这个组件叫做placeholde.
tf_x = tf.placeholder(tf.float32, x.shape) # input x
tf_y = tf.placeholder(tf.float32, y.shape) # input y
激励
然后我们需要定义每一层的对输入的激励。也就是将这个输入数据映射为其他值
y_relu = tf.nn.relu(x) # x是一个placeholder。这里相当于每一层中都是placeholder即插座在打交道,而输入和输出数据只在起止层交互。最直观的就是对每一层都的参数w与b都使用placeholder。
有时,我们的输入层数据需要进行多个数据的拼接,那就是tf.concat函数。
tf 中数据的拼接
# tf.concat([tensor1,tensor2,...,tensor n], axis) 这个是形式,拼接的数据用[]包起来,axis从0开始计数,表示维度
#进行数据的拼接,拼接的维度是通过axis来控制的
tensor_one = [[