小编fla*_*awr的帖子

Haskell 中是否有定点运算符?

我最近注意到我经常编写函数,这些函数只是迭代另一个函数,f直到它到达一个固定点(这样f x == x

我认为这是一个非常笼统的概念,所以我认为可能有一个内置的。

所以我想知道是否有一个内置的,或者更一般的东西?

所以我基本上是在寻找这个:

fixedpoint f x= head . dropWhile(\y->y /= f y) $ iterate f x
Run Code Online (Sandbox Code Playgroud)

我只是在谷歌搜索时遇到了麻烦,因为我只fix在我的搜索词包含fixed point或类似的东西时才找到对该函数的引用。

haskell fixed-point-iteration

5
推荐指数
2
解决办法
667
查看次数

2元组的特殊地位是什么?

阅读真实世界HaskellTypeclassopedia我得到的印象是2元组(a,b)在Haskell中可以扮演非常特殊的角色.

我遇到的第一个用途是lookup使用2元组列表作为字典.

然后我也遇到了这样((,) e)一个事实:它是一个仿函数的实例(但没有其他的n元组),这在上面的例子中很有意义(key,value).

现在最新的案例 - 我实际想要问的一个案例 - 在Typeclassopedia的第4.3章中.在那里它说这((,) a)是一个Applicative if a是一个幺半群的实例.你什么时候真正利用它?您使用Applicative实例的应用程序是(a,b)什么?

haskell tuples

5
推荐指数
1
解决办法
632
查看次数

randomIO(来自System.Random)是否产生0?

我理解randomIO::IO Float产生均匀分布的Float数字,但我的问题是在什么范围内?是[0,1],(0,1)还是介于([0,1)(0,1])之间的任何东西?

我在hackage上找不到任何关于它的东西,引用的论文是在付费墙背后.

我问的原因是因为你可能想要改变随机数,如果你想评估1/myRandomNumber它会有助于知道你是否会遇到Infinity.

import System.Random
main=(randomIO::IO Float)>>=print
Run Code Online (Sandbox Code Playgroud)

在线尝试!

random haskell

5
推荐指数
1
解决办法
125
查看次数

如何在Tensorboard中显示10张以上的图像?

我注意到,无论我将多少图像保存到张量板日志文件中,张量板都只会显示其中的 10 个(每个标签)。

我们如何增加图像数量或至少选择显示哪些图像?


要重现我的意思,请运行以下 MCVE:

import torch
from torch.utils.tensorboard import SummaryWriter
tb = SummaryWriter(comment="test")

for k in range(100):
    # create an image with some funny pattern
    b = [n for (n, c) in enumerate(bin(k)) if c == '1']
    img = torch.zeros((1,10,10))
    img[0, b, :] = 0.5
    img =img + img.permute([0, 2, 1])

    # add the image to the tensorboard file
    tb.add_image(tag="test", img_tensor=img, global_step=k)
Run Code Online (Sandbox Code Playgroud)

这将创建一个runs保存数据的文件夹。从同一文件夹执行tensorboard --logdir runs,打开浏览器并转到localhost:6006(或替换6006为启动后显示的任何端口张量板)。然后转到“图像”选项卡并将滑块移动到灰度图像上方。

就我而言,它仅显示步骤中的图像

k = 3, 20, …
Run Code Online (Sandbox Code Playgroud)

python-3.x tensorboard pytorch tensorboardx

5
推荐指数
1
解决办法
4217
查看次数

pytorch 中的 Expand 相当于 numpy 的什么?

假设我有一个xshape 的numpy 数组[1,5]。我想沿轴 0 扩展它,使得生成的数组y具有形状 [10,5] 并且对于每个 i 都y[i:i+1,:]等于x

如果x是一个 pytorch 张量我可以简单地做

y = x.expand(10,-1)
Run Code Online (Sandbox Code Playgroud)

但是 numpy 中没有expand,并且那些看起来像它(expand_dimsrepeat)的行为似乎不像它。


例子:

y = x.expand(10,-1)
Run Code Online (Sandbox Code Playgroud)

python numpy pytorch array-broadcasting

5
推荐指数
1
解决办法
5367
查看次数

打开 Anaconda Prompt 时执行某些命令?

在 Windows 中使用 Anaconda 时,您会获得“Anaconda Prompt”的快捷方式,这是一个 cmd 窗口,其中激活了基本环境,并且可能加载了所有 conda 命令。有没有办法在启动时执行一些命令?

我想将其更改为特定目录并激活base.

windows anaconda conda

5
推荐指数
1
解决办法
1671
查看次数

是否可以在列表推导中添加多个元素?

我想知道是否可以在列表理解中将多个元素添加到列表中.

例如,如果我想要一个由数字1到10组成的列表,我可以写:

[k | k <- [1..10]]
Run Code Online (Sandbox Code Playgroud)

但是,还有一种方法可以通过始终添加k k+1在同一步骤中执行此操作,并且只采用奇数k吗?以下代码无效,但可能更好地解释了我正在尝试做的事情:

[k, k+1 | k <- [1, 3..10]]
Run Code Online (Sandbox Code Playgroud)

目前,最接近这一点(我所知道的)如下:

foldl1 (++) [[k, k + 1] | k <- [1, 3..10]]
Run Code Online (Sandbox Code Playgroud)

haskell list-comprehension

4
推荐指数
1
解决办法
1020
查看次数

从无限列表创建元组

在试图解决这个挑战时,我偶然发现了一些我无法解释的事情.

首先,我生成一个无限的素数列表,如下所示:

primes = [n|n<-[2..],product[1..n-1]`rem`n==n-1]
Run Code Online (Sandbox Code Playgroud)

这有推断类型,[Integer]因此Int溢出应该不是问题.

然后我尝试制作后续素数的2元组(目标:) [(2,3),(5,7),...].为此,我写了另一个函数:

listtotuples l=[ (l!!i, l!!(i+1) ) |i<-[0,2..]]
Run Code Online (Sandbox Code Playgroud)

奇怪的是,这个listtotuples函数似乎在例如上工作正常[0..],但它只是在我应用它时停止工作primes,输出只是(在中断之后)

[(2,3),(5,7),(11,13),(Interrupted.
Run Code Online (Sandbox Code Playgroud)

我不明白为什么会这样,有人能解释一下吗?

编辑:这不仅发生在尝试输出无限列表时,而且例如take 10 $ listtotuples primes在从上面加载带有两行的文件后在Prelude中使用.它确实卡在了完全相同的位置.

我使用Windows 7与GHCi 7.10.2.

EDIT2:我的文件的全部内容如下:

order p m=head[n-1|n<-[0..],mod m (p^n)>0] 
primes = [n|n<-[2..],product[1..n-1]`rem`n==n-1]
listtotuples l=[ (l!!i, l!!(i+1) ) |i<-[0,2..]]
p=listtotuples primes
f n=product[r^(order s n) * s^(order r n)|(r,s)<-take n p]
Run Code Online (Sandbox Code Playgroud)

一旦我评论/删除最后一行(该函数f,问题,但我仍然认为这是非常奇怪的,因为f没有被调用,并且没有与上述函数有任何共同点.问题,如果我take n p在函数中f替换[(2,3)]所有内容,问题就会消失.按定义工作.

haskell

3
推荐指数
1
解决办法
144
查看次数

有限递归"列表"类型

在Haskell中重建列表类型很容易:

data MyList a = Cons a (MyList a)
               | Empty
               deriving (Show)

someList = Cons 1 (Cons 2 (Cons 3 Empty)) -- represents [1,2,3]
Run Code Online (Sandbox Code Playgroud)

这允许构建无限列表.是否有可能以某种方式定义列表类型,只允许有限(但仍然是任意长度)列表?

这里的列表示例可以替换为任何其他可能无限的数据结构,如树等.请注意,我没有任何特定的应用程序,所以没有必要质疑这个的有用性,我只是好奇是否会有可能.

haskell list infinite

3
推荐指数
1
解决办法
336
查看次数

PyTorch:如何通过广播两个不同形状的张量进行相乘

我有以下两个 PyTorch 张量 A 和 B。

A = torch.tensor(np.array([40, 42, 38]), dtype = torch.float64)

tensor([40., 42., 38.], dtype=torch.float64)
Run Code Online (Sandbox Code Playgroud)
B = torch.tensor(np.array([[[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5]], [[4,5,6,7,8],[4,5,6,7,8],[4,5,6,7,8],[4,5,6,7,8],[4,5,6,7,8]], [[7,8,9,10,11],[7,8,9,10,11],[7,8,9,10,11],[7,8,9,10,11],[7,8,9,10,11]]]), dtype = torch.float64)

tensor([[[ 1.,  2.,  3.,  4.,  5.],
         [ 1.,  2.,  3.,  4.,  5.],
         [ 1.,  2.,  3.,  4.,  5.],
         [ 1.,  2.,  3.,  4.,  5.],
         [ 1.,  2.,  3.,  4.,  5.]],

        [[ 4.,  5.,  6.,  7.,  8.],
         [ 4.,  5.,  6.,  7.,  8.],
         [ 4.,  5.,  6.,  7.,  8.],
         [ 4.,  5.,  6.,  7.,  8.], …
Run Code Online (Sandbox Code Playgroud)

python shapes matrix-multiplication pytorch array-broadcasting

3
推荐指数
1
解决办法
7340
查看次数