python - 在神经网络的第一层计算线性前向
问题描述
我正在尝试构建一个简单的前馈神经网络,将猫的图像分类为非猫或猫(0 或 1)。我对如何计算 Z 或 NN 中第一层的线性激活的理解有点模糊。
如果我有第一层的以下参数(伪代码):
layer_size = 20
training_examples(m) = 500
X = (12288, 500) # my input, 500 64x64x3 images of cats
W = (layer_size, len(X)) # first hidden layer, (20, 12288)
您将如何使用这些参数计算线性激活(或 Z)?
据我了解,您的数据集应该一次全部输入网络(每个时期)。我没有得到的是,当 X 包含的列数多于 W 的行数(500 对 20)时,您如何实现这一点。我应该广播 W 25 次,还是直到它包含足够的行以匹配训练示例(或 m)的数量?
这是我当前的线性前向(Z)的python实现。
Z = []
for i in range(len(W)):
Z.append(sum(W[i] * A[i] for W[i], A[i] in zip(W[i], A[i])) + b[i])
目前,代码循环遍历 W 的每一行,将元素乘以 A[i] 的列(或在本例中为 X),然后将其相加。为了使其正常工作,我是否应该循环遍历 A 的每一列并在此范围内广播 W ?
不幸的是,我没有 numpy 访问权限,所以我坚持这一点。
解决方案
推荐阅读
- python - 将 ML 模型加载到 Orange
- iterator - 减少 Julia 中生成器的内存分配
- ios - 使用属性键路径为 SCNCamera.fStop 设置动画不起作用,仅在隐式 SCNTransaction 内
- postgresql - Postgres - “不存在”比加入慢吗?
- laravel - 检查一秒钟内处理了多少作业?
- laravel - laravel 雄辩的 ORM 联合多表没有外键和多模型
- javascript - 我无法通过 POST 请求从我的节点服务器访问数据
- vb.net - 此方法不能与内联响应邮件项目一起使用
- sql - 获取关联计数低于列值的所有记录
- c - 用于隐写术的 C 程序