【发布时间】:2018-05-22 00:18:15
【问题描述】:
我刚刚阅读了“制作自己的神经网络”一书。现在我正在尝试在 Python 中创建 NeuralNetwork 类。我使用 sigmoid 激活函数。我编写了基本代码并尝试对其进行测试。但是我的实现根本无法正常工作。经过长时间的调试和与书中代码的比较后,我发现非常大的 sigmoid 是 1,因为 Python 将它四舍五入。我使用numpy.random.rand() 生成权重,此函数仅返回从 0 到 1 的值。将所有权重和输入的乘积相加后,我得到非常大的数字。我用numpy.random.normal() 函数解决了这个问题,该函数从范围(-1, 1) 中生成随机数。但我有一些问题。
- sigmoid 是好的激活函数吗?
- 如果node的输出仍然很大,Python将结果四舍五入为1,这对于sigmoid是不可能的怎么办?
- 如何防止 Python 舍入非常接近整数的浮点数
- 对于我作为神经网络初学者的任何建议(书籍、技术等)。
【问题讨论】:
-
你用的是什么版本的python?你能举一个最终将float转换为int的操作示例吗?
标签: python neural-network sigmoid