无法弄清楚将浮点数或整数输入到我的神经网络

相对论开发者

抱歉,如果这是一个琐碎的问题,或者只是个愚蠢的问题,我才刚开始使用python和神经网络...所以我从一个教程中制作了这个简单的神经网络,并且一切正常,我的问题是我要怎么去关于更改输入和输出目标的信息,因为目前我还不知道为什么输入和输出位于数组中?我正在尝试做一些事情,例如让它学习到当减小的值到达某个点(例如0.25)时返回1,否则返回0?一个例子是输入是到障碍物的X距离,当距离足够近时它可以学习跳跃(输出1 =跳跃,输出0 =不执行任何操作)?(总而言之,我的问题是我试图找到一种方法来输入浮点数并输出诸如浮点数或整数之类的东西,但这似乎只能接受并输出np。

import numpy as np

def sigmoid(x):
    return 1.0/(1+ np.exp(-x))

def sigmoid_derivative(x):
    return x * (1.0 - x)    


class NeuralNetwork:
    def __init__(self, x, y):
        self.input = x
        self.weights1 = np.random.rand(self.input.shape[1],4)
        self.weights2 = np.random.rand(4,1)
        self.y = y
        self.output = np.zeros(y.shape)

    def feedforward(self):
            self.layer1 = sigmoid(np.dot(self.input, self.weights1))
            self.output = sigmoid(np.dot(self.layer1, self.weights2))

    def backprop(self):
        d_weights2 = np.dot(self.layer1.T, (2*(self.y - self.output) * sigmoid_derivative(self.output)))        
        d_weights1 = np.dot(self.input.T, (np.dot(2*(self.y - self.output) * sigmoid_derivative(self.output), self.weights2.T) * sigmoid_derivative(self.layer1)))

        self.weights1 += d_weights1
        self.weights2 += d_weights2



if __name__ == "__main__":
    X = np.array([[0,0,1],
                  [0,1,1],
                  [1,0,1],
                  [1,1,1]])
    y = np.array([[1],[0],[1],[0]])
    nn = NeuralNetwork(X,y)

    for i in range(10000):
        nn.feedforward()
        nn.backprop()

    print(nn.output)
ZhaoYi

您需要知道什么batch size,通常来说,我们通常将多个样本输入到NN中,batch size即样本数,请参见,输入在列表2中dim [batch_size, fea_size],因此我们使用ndarray来包含输入。

如果要输入单个(平均数batch size为1)float(平均数fea_size为1),则需要使用ndarray以形状(1,1)封装输入,例如np.array([[0.5]])

接下来,NN的输出也为shape [batch_size, output_size],它给出所有输入样本的结果,并且output_sizeid由上一层的权重确定(在您的代码中self.weights2 = np.random.rand(4,1)),这意味着aoutput_size为1。因此,如果要浮点输出,可以得到它来自np.output[:, 0]所有样本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法弄清楚如何使用浮点数和固定位置

来自分类Dev

我无法弄清楚这些错误

来自分类Dev

我无法弄清楚这些错误

来自分类Dev

我无法弄清楚这个查询

来自分类Dev

收到我根本无法弄清楚的关于迷路开始标签的错误

来自分类Dev

尝试将信息输入数据库时,无法弄清楚我的 PHP 代码出了什么问题

来自分类Dev

试图弄清楚如何将GestureDetectorCompat添加到我的项目中

来自分类Dev

试图弄清楚如何将GestureDetectorCompat添加到我的项目中

来自分类Dev

无法弄清楚为什么我的开关不起作用。似乎无法识别cin输入

来自分类Dev

无法将浮点数转换为整数

来自分类Dev

无法弄清楚如何正确输入我的N元树

来自分类Dev

无法弄清楚为什么我的else语句仍然使用负输入调用此函数

来自分类Dev

无法弄清楚如何将输入存储到字典

来自分类Dev

似乎无法弄清楚为什么我无法将 JSON 读入 DataFrame

来自分类Dev

似乎无法弄清楚如何获得使用管理令牌从我的网站发布到我的应用墙的权限

来自分类Dev

我无法弄清楚我的Python Socket错误

来自分类Dev

无法弄清楚用法

来自分类Dev

无法弄清楚崩溃

来自分类Dev

我无法弄清楚将分母的异常抛出为 0 的有理类的语法

来自分类Dev

将图像输入神经网络

来自分类Dev

将浮点数比较为整数

来自分类Dev

将浮点数转换为整数

来自分类Dev

将整数转换为浮点数

来自分类Dev

我无法弄清楚RouteConfig.cs文件

来自分类Dev

无法弄清楚为什么我得到此NullPointerException

来自分类Dev

我无法通过语句弄清楚语法问题

来自分类Dev

我无法通过语句弄清楚语法问题

来自分类Dev

无法弄清楚如何为我的函数使用参数

来自分类Dev

MYSQL错误,我似乎无法弄清楚

Related 相关文章

  1. 1

    无法弄清楚如何使用浮点数和固定位置

  2. 2

    我无法弄清楚这些错误

  3. 3

    我无法弄清楚这些错误

  4. 4

    我无法弄清楚这个查询

  5. 5

    收到我根本无法弄清楚的关于迷路开始标签的错误

  6. 6

    尝试将信息输入数据库时,无法弄清楚我的 PHP 代码出了什么问题

  7. 7

    试图弄清楚如何将GestureDetectorCompat添加到我的项目中

  8. 8

    试图弄清楚如何将GestureDetectorCompat添加到我的项目中

  9. 9

    无法弄清楚为什么我的开关不起作用。似乎无法识别cin输入

  10. 10

    无法将浮点数转换为整数

  11. 11

    无法弄清楚如何正确输入我的N元树

  12. 12

    无法弄清楚为什么我的else语句仍然使用负输入调用此函数

  13. 13

    无法弄清楚如何将输入存储到字典

  14. 14

    似乎无法弄清楚为什么我无法将 JSON 读入 DataFrame

  15. 15

    似乎无法弄清楚如何获得使用管理令牌从我的网站发布到我的应用墙的权限

  16. 16

    我无法弄清楚我的Python Socket错误

  17. 17

    无法弄清楚用法

  18. 18

    无法弄清楚崩溃

  19. 19

    我无法弄清楚将分母的异常抛出为 0 的有理类的语法

  20. 20

    将图像输入神经网络

  21. 21

    将浮点数比较为整数

  22. 22

    将浮点数转换为整数

  23. 23

    将整数转换为浮点数

  24. 24

    我无法弄清楚RouteConfig.cs文件

  25. 25

    无法弄清楚为什么我得到此NullPointerException

  26. 26

    我无法通过语句弄清楚语法问题

  27. 27

    我无法通过语句弄清楚语法问题

  28. 28

    无法弄清楚如何为我的函数使用参数

  29. 29

    MYSQL错误,我似乎无法弄清楚

热门标签

归档