轻松学习神经网络2:构建多层前向传播神经网络

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

simple Fully Conected Layer

1、定义3D输出时的图形

def draw3D(X, Y, Z, angle=(45,-30)):
fig = plt.figure(figsize=(15,7))
ax = Axes3D(fig)
ax.view_init(angle[0], angle[1])
ax.plot_surface(X,Y,Z,rstride=1, cstride=1, cmap=’rainbow’)
plt.show()

2、定义一个操作网络结构的类

class FC:
def init(self, in_num, out_num, lr=0.01):
self._in_num = in_num
self._out_num = out_num
self.w = np.random.randn(out_num, in_num) * 10 #曲线挺陡
#self.w = np.ones((out_num, in_num))#相对平缓
# self.w=np.zeros((out_num,in_num))#是一个平面
self.b = np.zeros(out_num)
self.lr = lr

def _sigmoid(self, in_data):
    return 1 / (1 + np.exp(-in_data))
    #return in_data

def forward(self, in_data):
    self.topVal = self._sigmoid(np.dot(self.w, in_data) + self.b)
    self.bottomVal = in_data
    return self.topVal

3、定义数据,在-10到10共20个元素,生成100个元素,每个元素之间的差为0.2,数据合并后

再用zip压缩成为矩阵,特别注意pyt

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值