linear regression 使用TensorFlow构建 notes [满地都是坑]
Cost = tf.reduce_mean(tf.reduce_sum(tf.square(pY - Hypothesis),reduction_indices=[1]))
#reduction_indices是指沿tensor的哪些维度求和
因为矩阵乘法之后不是一个数字,是一个多层数组
所以要用reduce_sum来求和 ,mean来求平均
tf.matmul(pX,W) + b
矩阵乘法,mutiply不是矩阵乘法...
b是一个多层数组,因为矩阵乘法之后就算只有一项,也不是一个数字,是一个多层数组,
W = tf.Variable(tf.random_normal([2, 1]),dtype=tf.float32)
Variable指定数据类型的方法又不一样
用random_normal初始化
pX = tf.placeholder(tf.float32,[1,2])
placeholder要指定数据类型最好,容易报错,用tf.float32
[x,x2]
把两个数组 并在一起
plt.show()
show了才能现实图表
plt.figure(figsize=(20,7))
plt.subplot(1, 3, 1)
设置多图表
normalization
原来如果用了标准化,是要反归一化的,把标准差和均值记下来
np.random.randn(*x.shape)
用星号把tuple变成数组
range(5)
是有5个数的,0 1 2 3 4
定义Variable的时候,注意float和int
W = tf.Variable(0.0,name='W')
W = tf.Variable(0,name='W')
貌似没有可以定义Variable的类型的地方,但是类型错了又会报错
python zip
zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表
for (xi,yi) in zip(x,y):
如果用element-wise来加噪声,那么就不是噪声了...全部加了同一个deviation的话
noisy = np.random.randn(*x.shape)
喂参数的语法,”对象“里用冒号
feed_dict = {pX : xi,pY : yi}