显然,rfft2函数只是计算输入矩阵的离散fft.但是,如何解释给定的输出索引?给定一个输出指数,我看哪个傅立叶系数?
我对输出的大小感到特别困惑.对于n×n矩阵,输出似乎是n乘(n/2)+1矩阵(对于偶数n).为什么方阵最终会得到非方形傅立叶变换?
有人告诉我,将平均池化应用于矩阵 M 相当于丢弃 M 的傅里叶表示的高频分量。对于平均池化,我的意思是 2 x 2 平均池化,如下图所示:
我想验证这一点并看看它是如何使用 numpy 工作的。因此,我编写了平均池的简单实现,并复制了一个函数来从这里整齐地显示矩阵:
def prettyPrintMatrix(m):
s = [['{:.3f}'.format(e) for e in row] for row in m]
lens = [max(map(len, col)) for col in zip(*s)]
fmt = '\t'.join('{{:{}}}'.format(x) for x in lens)
table = [fmt.format(*row) for row in s]
print '\n'.join(table)
def averagePool(im):
imNew = np.empty((im.shape[0] /2, im.shape[1]/2))
for i in range(imNew.shape[0]):
for j in range(imNew.shape[1]):
imNew[i,j] = np.average(im[(2*i):(2*i+2), (2*j):(2*j+2)])
return imNew
Run Code Online (Sandbox Code Playgroud)
现在为了测试傅里叶系数的变化,我运行了以下代码:
M = np.random.random((8,8))
Mpooled = averagePool(M)
# …Run Code Online (Sandbox Code Playgroud) 我想在R中进行序数回归,所以我想使用包中的polr函数MASS.首先,我创建一个这样的模型:
model <- polr(labels ~ var1 + var2, Hess = TRUE)
Run Code Online (Sandbox Code Playgroud)
现在我想使用该模型来预测新病例.我以为那只是:
pred <- predict(model, data = c(newVar1, newVar2))
Run Code Online (Sandbox Code Playgroud)
然而,似乎预测是以某种方式预测训练集,而不是新数据.当我的训练集是2000个例子时,我的新数据是700个例子.我仍然得到2000个预测标签.
所以我的问题是:如何使用polr新数据进行预测?
我正在测试给我的一些代码,并收到一条错误消息:
AttributeError: 'module' object has no attribute 'sub'
Run Code Online (Sandbox Code Playgroud)
所指的模块是TensorFlow。为了调查这个错误,我开始研究 TensorFlow 源代码并发现了一个函数“tensorflow.subtract”。将“sub”替换为“subtract”使错误消失。
但现在我仍然想知道为什么会出现这个错误。我可以想到两个原因:
任何人都可以就这里最有可能的情况提出建议吗?
fft ×2
numpy ×2
python ×2
dft ×1
matrix ×1
ordinal ×1
predict ×1
r ×1
regression ×1
tensorflow ×1