我最近注意到我经常编写函数,这些函数只是迭代另一个函数,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和Typeclassopedia我得到的印象是2元组(a,b)在Haskell中可以扮演非常特殊的角色.
我遇到的第一个用途是lookup使用2元组列表作为字典.
然后我也遇到了这样((,) e)一个事实:它是一个仿函数的实例(但没有其他的n元组),这在上面的例子中很有意义(key,value).
现在最新的案例 - 我实际想要问的一个案例 - 在Typeclassopedia的第4.3章中.在那里它说这((,) a)是一个Applicative if a是一个幺半群的实例.你什么时候真正利用它?您使用Applicative实例的应用程序是(a,b)什么?
我理解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)
我注意到,无论我将多少图像保存到张量板日志文件中,张量板都只会显示其中的 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) 假设我有一个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_dims和repeat)的行为似乎不像它。
例子:
y = x.expand(10,-1)
Run Code Online (Sandbox Code Playgroud) 在 Windows 中使用 Anaconda 时,您会获得“Anaconda Prompt”的快捷方式,这是一个 cmd 窗口,其中激活了基本环境,并且可能加载了所有 conda 命令。有没有办法在启动时执行一些命令?
我想将其更改为特定目录并激活base.
我想知道是否可以在列表理解中将多个元素添加到列表中.
例如,如果我想要一个由数字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) 在试图解决这个挑战时,我偶然发现了一些我无法解释的事情.
首先,我生成一个无限的素数列表,如下所示:
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中重建列表类型很容易:
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)
这允许构建无限列表.是否有可能以某种方式定义列表类型,只允许有限(但仍然是任意长度)列表?
这里的列表示例可以替换为任何其他可能无限的数据结构,如树等.请注意,我没有任何特定的应用程序,所以没有必要质疑这个的有用性,我只是好奇是否会有可能.
我有以下两个 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
haskell ×6
pytorch ×3
python ×2
anaconda ×1
conda ×1
infinite ×1
list ×1
numpy ×1
python-3.x ×1
random ×1
shapes ×1
tensorboard ×1
tensorboardx ×1
tuples ×1
windows ×1