这是我用来检查convolve2d正确性的代码
import numpy as np
from scipy.signal import convolve2d
X = np.random.randint(5, size=(10,10))
K = np.random.randint(5, size=(3,3))
print "Input's top-left corner:"
print X[:3,:3]
print 'Kernel:'
print K
print 'Hardcording the calculation of a valid convolution (top-left)'
print (X[:3,:3]*K)
print 'Sums to'
print (X[:3,:3]*K).sum()
print 'However the top-left value of the convolve2d result'
Y = convolve2d(X, K, 'valid')
print Y[0,0]
在我的计算机上,这导致以下结果:
Input's top-left (3x3) corner:
[[0 0 0]
[1 1 2]
[1 3 0]]
Kernel:
[[4 1 1]
[0 3 3]
[2 1 2]]
Hardcording the calculation of a valid convolution (top-left)
[[0 0 0]
[0 3 6]
[2 3 0]]
Sums to
14
However the top-left value of the convolve2d result
10
背景故事 :我一直在调试convnet库,并且渐变总是错误的。几周后,我得出结论,一切应该正常,因此我用裸手检查了convolve2d函数。
表达式(X[:3,:3]*K).sum()
不正确。对于卷积,您必须反转内核,例如(X[:3,:3]*K[::-1,::-1]).sum()
我正在尝试制作一个程序,让很多人进入ArrayList,然后从中随机选择一个名字。代码运行正常,但请求名称输入的字符串在第一次运行时会显示两次。知道为什么会这样吗? 我希望它显示的内容:输入名称:。。。。。。 显示内容:输入名称:输入名称:。。。。。。
问题内容: 我正在使用Python编写一些加密算法,但是我以前从未使用过Python。 首先,看一下这段代码,然后我将解释这个问题, x和y的值为, 我不明白代码的第三行。为了理解第三行,我不得不研究函数,我遇到了这个问题, zip函数帮助元组 根据这个问题的答案,代码, 将输出, 但是当我尝试打印时, 我得到这个输出, 为什么我的输出与原始输出不同? 问题答案: 在Python 3中返回一个迭代
问题内容: 为什么我从以下代码中获得“ AAAAAAAAA”而不是“ 1A234A567”: 任何想法? 问题答案: 函数以正则表达式为参数。和正则表达式“。” 表示“任何字符”。您必须对其进行转义以指定它是您想要的字符:
我有一个使用ExecuteStreamCommand处理器运行一些shell脚本的NiFi流,而ExecuteStreamCommand的输出是不正确的。 下面是一个如果流的演示: https://youtu.be/4e00rzerjsq
下面是一个小代码,我正试图计算softmax。它适用于单个阵列。但是如果数量更大,比如1000等,就会爆炸 我收到一个错误 运行时警告: 在 exp 中遇到溢出 运行你的代码 softmax1 = np.exp(x)/np.sum(np.exp(x))
问题内容: 在使用树集时,我发现了非常奇怪的行为。 根据我的理解,以下程序应打印两条相同的行: 但奇怪的是它打印: 我无法理解-为什么树集的行为如此? 问题答案: 发生这种情况是因为SortedSet的Comparator用于排序,但是removeAll依赖于每个元素的方法。从SortedSet文档中: 请注意,如果排序集要正确实现接口,则排序集(无论是否提供显式比较器)所维护的顺序必须 与equ
我试图做一个java程序,但我有一个问题与输出。