继上篇,继续视频代码笔记。
一:placeholder(tensorflow)
具体不造有什么用。
结果:
二:action function激励函数(tensorflow)
(目前:我自己理解为:1.压缩,使其值(激活值)位于0到1之间;2.表示了模型的偏好(个人理解,总觉得他和偏置值有着类似的作用))
三:添加神经网络层(tensorflow)(函数)
其实如果看过神经网络视频的,很容易理解代码。但是我自己画图:
和代码比较,我的输入输出和他是相反的(行列),有点不清楚了。因为我习惯matlab一样的构造方式,所以此处有点疑惑。
四:神经网络 (继上层代码)
参考网址:
(1)np.newaxis
https://blog.csdn.net/mameng1/article/details/54599306(感觉就是转置的作用)
(2)np.random.normal()
https://blog.csdn.net/lanchunhui/article/details/50163669(正态分布的误差,即随机误差)
(3)reduce_sum()中reduction_indices(其实就是表示维度)
https://blog.csdn.net/qq_34562093/article/details/80611611
(4)place_holder中None再干啥(其实就是为了表示,这是一个数,猜测是必须给定两个维度,而用None表示其没有这个维度)
https://blog.csdn.net/zj360202/article/details/70243127
代码:
(嗯,果然,一帆风顺是不存在的)
(1)tensorflow各个版本间的坑
https://blog.csdn.net/wang2008start/article/details/71516198
吐槽开始:mmp
首先,代码打完,运行报错。
(1)经检验,float32和float64问题
https://www.cnblogs.com/hhh5460/p/5129032.html
照着博客解决
但是会出现一个很奇怪的现象:
上图为转换前后
(2)报错:
经定位:
这句话的问题。
最开始我以为是点乘和矩阵乘法的问题:
(2.1)点乘和矩阵乘法
http://www.soaringroad.com/?p=560
(2.2)改完还是不对,理了一下思路,其实,inputs是一个[300,2],每一行为一个样本,Weigths[1,10],而其运算一定矩阵乘法,所以,就是解决维度问题。
最恶心的坑:
对,没错,又回到最初的起点,意味着最初那个解决float64问题的方法是不对的.........我.....,此处先留存疑问,以后解决。
最最后,填以前的一个疑问,place_holder,可以利于随机梯度下降的实现。
----------------------------------------------------------------------------------分割线----------------------------------------------------------------------------
咨询了大佬,最后问题解决了,有一个函数叫: np.float32(),就这么简单..............
最后代码如下:
结果: