Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我怎样才能看到python中的简单神经网络的梦想?_Python_Neural Network - Fatal编程技术网

我怎样才能看到python中的简单神经网络的梦想?

我怎样才能看到python中的简单神经网络的梦想?,python,neural-network,Python,Neural Network,我已经建立了一个基本的多层感知器,可以从MNIST数据集学习。 在学习之后,我想从输出中获得一个输入,这意味着为了获得由网络生成的图片,需要反转前馈函数 我的整个代码与 前馈函数如下所示: def feedforward(self, a): """Return the output of the network if ``a`` is input.""" for b, w in zip(self.biases, self.weights): a = sigmoid

我已经建立了一个基本的多层感知器,可以从MNIST数据集学习。 在学习之后,我想从输出中获得一个输入,这意味着为了获得由网络生成的图片,需要反转前馈函数

我的整个代码与

前馈函数如下所示:

def feedforward(self, a):
    """Return the output of the network if ``a`` is input."""
    for b, w in zip(self.biases, self.weights):
        a = sigmoid(np.dot(w, a)+b)
    return a
如果我尝试使用np.linalg.pinv将其反转,它将不起作用,因为在某个点上,我必须反转一个向量,并且解不是唯一的,例如:

m = np.array([[3, 4]])
n = np.array([[1], [2]])
o = np.dot(m,n)
print(np.dot(np.linalg.pinv(m),o)) #not n
我在那里被绊倒了。我想我需要一个技巧来使np.linalg.pinv的输出更加连贯,因为现在我甚至无法检索实际输入,因为在sigmoid函数的逆表达式中有对数,并且由于np.linalg.pinv给出的值,我最终得到的是负数,导致NaN无处不在

有什么想法吗


PS:最终目标是将随机噪声输入网络,并观察数字的出现,因此我从

中选择了梦境表达式。如果我理解正确,则无需以任何方式反转网络,但您应该创建一个随机图像,并将其输入网络,然后查看其性能。 现在,您可以逐渐更改输入图像,使输出更接近您希望的状态。此外,您应该尝试使相邻像素在强度上彼此相似


(换句话说,这基本上就是所提供链接的状态。)

你是对的,我可能把事情弄混了。我仍然想扭转网络,看看它能产生什么样的图像,不过,我可能应该删除和重新措辞,因为这个标题给我带来了insta downvote。另外,我很想知道您是否有任何关于如何逐渐改变输入图像的线索,以使输出更接近我想要的样子?坦白地说,我对ML是新手,我自己也在努力找到答案(:然而,关于反转网络:我不太确定这是否会像一个有一个输出和两个输入的网络一样得到一个。假设你知道你在寻找一个
z=1
(在你实际想要的输出上反转了sigmoid之后)用x=y=1作为权重,a,b作为输入,你可以得到点积的无限解,不是吗?好吧,你说服了我,这实际上是不可能的,或者至少是错误的看待事物的方式。我在这一领域有了更多的经验后,会再讨论这个问题。谢谢你的回答。