小编fla*_*awr的帖子

Image.fromarray只生成黑色图像

我正在尝试将numpy矩阵保存为灰度图像Image.fromarray.它似乎适用于随机矩阵,但不适用于特定的矩阵(应该出现一个圆圈).谁能解释我做错了什么?

from PIL import Image
import numpy as np
radius = 0.5
size = 10
x,y = np.meshgrid(np.linspace(-1,1,size),np.linspace(-1,1,size))
f = np.vectorize(lambda x,y: ( 1.0 if x*x + y*y < radius*radius else 0.0))
z = f(x,y)
print(z)
zz = np.random.random((size,size))
img = Image.fromarray(zz,mode='L') #replace z with zz and it will just produce a black image
img.save('my_pic.png')
Run Code Online (Sandbox Code Playgroud)

python numpy python-imaging-library

20
推荐指数
1
解决办法
1万
查看次数

递归匿名函数Matlab

我知道这不是匿名函数的用途,但就像我试图通过匿名函数创建递归函数一样.递归函数的原型显然是阶乘函数.问题是,这是很难做出区分的情况下的匿名函数.到目前为止我设法做的是:

f=@(cn,n,f)eval('if n>1; f(cn*n,n-1,f);else;ans=cn;end');
f=@(n)f(1,n,f);
Run Code Online (Sandbox Code Playgroud)

或者:

f=@(cn,n,f)eval('if n>1; f(cn*n,n-1,f);else;disp(cn);end');
f=@(n)f(1,n,f);
Run Code Online (Sandbox Code Playgroud)

不太令人满意的是,直接分配时仍然无法使用此功能,a=f(3)仍会产生错误,因为eval没有得到值.

所以我的问题是,您是否可以通过匿名函数实际执行递归函数,例如以允许例如a=f(3)仅依赖于本机matlab函数(或者您可以在命令行中创建的函数,如我在示例中所做的那样)计算阶乘的方式?

PS:我知道这没有任何实际用途,这只是对你可以弯曲和滥用Matlab语法的挑战.

recursion matlab anonymous-function

13
推荐指数
1
解决办法
950
查看次数

如何在不使用 @hydra.main() 的情况下获取 Hydra 配置

假设我们有以下设置(从Hydra 文档中复制和缩短):

配置文件: config.yaml

db:
  driver: mysql
  user: omry
  pass: secret
Run Code Online (Sandbox Code Playgroud)

蟒文件: my_app.py

import hydra
@hydra.main(config_path="config.yaml")
def my_app(cfg):
    print(cfg.pretty())
if __name__ == "__main__":
    my_app()
Run Code Online (Sandbox Code Playgroud)

当我们可以在函数上使用装饰器时,这很有效my_app。现在我想(为了小脚本和测试目的,但这并不重要)cfg在任何函数之外获取这个对象,只是在一个普通的 python 脚本中。据我了解装饰器的工作原理,应该可以调用

import hydra
cfg = hydra.main(config_path="config.yaml")(lambda x: x)()
print(cfg.pretty())
Run Code Online (Sandbox Code Playgroud)

但 thencfg只是None而不是所需的配置对象。所以看起来装饰器没有传递返回值。有没有另一种方法可以做到这一点cfg

python-3.x hydra-python fb-hydra

13
推荐指数
2
解决办法
5117
查看次数

使用 `as` 语法进行惰性模式匹配的语法

在(香草)GHCi 8.6.5 中,以下功能完全有效:

f xs@ ~(x:xt) = xs
Run Code Online (Sandbox Code Playgroud)

如果我现在在 9.0.1 中执行相同操作,则会出现错误

Suffix occurrence of @. For an as-pattern, remove the leading whitespace.
Run Code Online (Sandbox Code Playgroud)

仅删除@和之间的空白~似乎还不够,因为那样@~会被解释为运算符,所以我发现的唯一有效变体是

f xs@(~(x:xt)) = xs
Run Code Online (Sandbox Code Playgroud)

我想知道以下内容,但在更改说明中找不到答案:

  1. 从 8.6.5 到 9.0.1 究竟发生了什么变化,导致了这种不兼容性?
  2. xs@(~(x:xt))真的写这种模式的最好方法,还是有超过这个优选的方法是什么?

haskell ghci

11
推荐指数
1
解决办法
228
查看次数

如何保存或共享jsfiddle文件?

我刚刚发现了jsfiddle,我喜欢这个工具并且已经开了帐户.现在我想分享一个我刚刚创建的小提琴,但我找不到保存它的网址或按钮,有人能告诉我该怎么做吗?它不会那么困难,但它让我疯了!

jsfiddle

10
推荐指数
1
解决办法
1万
查看次数

为什么打印 net 时不列出 torch.nn.Parameter?

我最近不得不构建一个需要包含张量的模块。虽然反向传播使用 完美运行torch.nn.Parameter,但在打印网络对象时它没有出现。parameter与其他模块相比,为什么不包含它layer?(它不应该表现得像layer吗?)

import torch
import torch.nn as nn

class MyNet(torch.nn.Module):
    def __init__(self):
        super(MyNet, self).__init__()
        self.layer = nn.Linear(10, 10)
        self.parameter = torch.nn.Parameter(torch.zeros(10,10, requires_grad=True))

net = MyNet()
print(net)
Run Code Online (Sandbox Code Playgroud)

输出:

MyNet(
  (layer): Linear(in_features=10, out_features=10, bias=True)
)
Run Code Online (Sandbox Code Playgroud)

python pytorch

10
推荐指数
1
解决办法
2611
查看次数

你能“部分”派生一个类型类吗?

在下面的玩具示例中,我们创建了一个新类型D,我们要为其实现 typeclass Show。现在让我们说对于所有构造函数,派生show函数都可以,除了A我们想要覆盖该默认值的一种特殊情况。

是否有可能做到这一点,或者你可以只派生出所有派生?

data D = A | B | C
  deriving (Show)

-- goal: 
-- show A = "A is special"
-- show B = "B"
-- show C = "C"

main = print $ show A
Run Code Online (Sandbox Code Playgroud)

在线试试吧!

haskell typeclass

8
推荐指数
1
解决办法
173
查看次数

在匿名函数内联中将NaN设置为零

我使用匿名函数实现了一个分段函数,该函数也可以在向量或矩阵中进行求值:

 f = @(x) exp(((x-.25).*(x-.75)).^-1) .* (.25 < x & x < .75);
Run Code Online (Sandbox Code Playgroud)

问题是在准确评估时,0.25或者0.75我们试图评估Inf * 0哪些结果NaN.我想将这些NaN值设置为零.我知道这可以使用文件中定义的函数轻松完成,但我想知道是否有一个解决方案可以让你进行内联.(可能定义其他匿名帮助函数.)

matlab vectorization anonymous-function

6
推荐指数
1
解决办法
242
查看次数

如何使用可变数量的输出参数编写匿名函数?

使用deal我们可以编写具有多个输出参数的匿名函数,例如

minmax = @(x)deal(min(x),max(x));
[u,v] = minmax([1,2,3,4]); % outputs u = 1, v = 4
Run Code Online (Sandbox Code Playgroud)

但是如果你想为优化函数提供一个具有渐变的函数,那么fminunc这不起作用.该函数fminunc有时会调用输入函数,有时会调用两个输出参数. (编辑:这不是真的,你只需要指定你是否真的想要使用渐变,使用例如optimset('SpecifyObjectiveGradient',true).然后在一次调用中它总是要求相同数量的参数.)

我们必须提供类似的东西

function [f,g] = myFun(x)
 f = x^2; % function
 g = 2*x; % gradient
Run Code Online (Sandbox Code Playgroud)

可以使用一个两个输出参数调用.

那么有没有办法在不使用function关键字的情况下进行同样的内联?

matlab anonymous-function variadic-functions function-handle output

6
推荐指数
2
解决办法
185
查看次数

如何将 ImageTk 转换为 Image?

假设我ImageTk.PhotoImage在变量中存储了一些图像imgtk。我怎样才能将其转换回Image.Image

原因是我想调整它的大小,但似乎.resize()只适用于Image.Images。

tkinter python-imaging-library python-3.x

6
推荐指数
2
解决办法
3045
查看次数