小编ce1*_*ce1的帖子

如何使用函数式编程迭代并找到列表中五个连续数字的最大乘积?

我必须使用函数式编程来实现以下函数,其中包含从0到9的数字列表.目标是找到列表中具有最大产品的五个连续元素.该函数应该返回最大乘积的索引的元组和最大乘积的值,而不使用max函数.

我可以在没有函数式编程的情况下轻松实现它,但是在没有任何循环的情 到目前为止,这是我的方法,但我坚持的部分是如何遍历数组以找到没有循环的连续五个数字.我正在尝试使用map来做到这一点,但我不认为这是正确的.是否有可能以任何方式合并枚举?任何帮助表示赞赏.

def find_products(L):
    val = map(lambda a: reduce(lambda x,y: x*y, L),L)
    print (val)
Run Code Online (Sandbox Code Playgroud)

python lambda functional-programming list

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

如何使用pytorch同时迭代两个数据加载器?

我正在尝试实现一个包含两个图像的暹罗网络。我加载这些图像并创建两个单独的数据加载器。

在循环中,我想同时浏览两个数据加载器,以便可以在两个图像上训练网络。

for i, data in enumerate(zip(dataloaders1, dataloaders2)):

    # get the inputs
    inputs1 = data[0][0].cuda(async=True);
    labels1 = data[0][1].cuda(async=True);

    inputs2 = data[1][0].cuda(async=True);
    labels2 = data[1][1].cuda(async=True);

    labels1 = labels1.view(batchSize,1)
    labels2 = labels2.view(batchSize,1)

    # zero the parameter gradients
    optimizer.zero_grad()

    # forward + backward + optimize
    outputs1 = alexnet(inputs1)
    outputs2 = alexnet(inputs2)
Run Code Online (Sandbox Code Playgroud)

数据加载器的返回值是一个元组。但是,当我尝试使用zip它们进行迭代时,出现以下错误:

OSError: [Errno 24] Too many open files
Exception NameError: "global name 'FileNotFoundError' is not defined" in <bound method _DataLoaderIter.__del__ of <torch.utils.data.dataloader._DataLoaderIter object at 0x7f2d3c00c190>> ignored                           
Run Code Online (Sandbox Code Playgroud)

不应在所有可迭代项目上进行压缩吗?但是似乎在这里我不能在数据加载器上使用它。

还有其他方法可以做到这一点吗?还是我错误地接近了暹罗网络的实现?

python zip machine-learning conv-neural-network pytorch

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

如何获取CNN的输入和输出通道?

我专门研究了这里的 AlexNet 架构: https://github.com/pytorch/vision/blob/master/torchvision/models/alexnet.py

我对他们如何获取输入和输出通道感到困惑。根据我对 AlexNet 的阅读,我无法弄清楚他们从哪里获得outputchannels = 64(作为函数的第二个参数Conv2d)。即使256分布在 2 个 GPU 上,也应该得到128而不是64。根据我的假设,输入通道 3 最初代表颜色通道。然而,其他输入和输出通道对我来说也没有意义。

谁能解释一下输入和输出通道是什么?

class AlexNet(nn.Module):

    def __init__(self, num_classes=1000):
        super(AlexNet, self).__init__()
        self.features = nn.Sequential(
            nn.Conv2d(3, 64, kernel_size=11, stride=4, padding=2), #why 64?
            nn.ReLU(inplace=True),
            nn.MaxPool2d(kernel_size=3, stride=2),
            nn.Conv2d(64, 192, kernel_size=5, padding=2),
            nn.ReLU(inplace=True),
            nn.MaxPool2d(kernel_size=3, stride=2),
            nn.Conv2d(192, 384, kernel_size=3, padding=1),
            nn.ReLU(inplace=True),
            nn.Conv2d(384, 256, kernel_size=3, padding=1),
            nn.ReLU(inplace=True),
            nn.Conv2d(256, 256, kernel_size=3, padding=1),
            nn.ReLU(inplace=True),
            nn.MaxPool2d(kernel_size=3, stride=2),
        )
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

image-processing filter deep-learning conv-neural-network pytorch

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

如何在O(n)时间内对邻接矩阵的列求和

我有一个有向图的nxn邻接矩阵.我想搜索以查看是否有任何列总和为n.问题是我必须在O(n)时间内完成这项工作.有没有办法用O(n)时间来处理这个问题或者是不可能的(不需要代码)?

供参考,以下是我要解决的问题:

问题:

在学校的乐队选举期间,每个人对总统有一些偏好,并且一个人的偏好一直包括他/她自己."完美"的总统是每个人都喜欢的人,除了他/她自己不喜欢任何人.我们想要知道的是这样一个人是否存在.

  • 定义与所述一组候选作为顶点和从顶点的有向边的有向图到顶点b当且仅当b是在该组的偏好的一个.
  • n个人
  • 我们想要一种在O(n)时间内执行的算法
  • 我们以nxn邻接矩阵的形式给出了上述图形

我想如果每个人都投票给"完美的总统",那么他/她将有n个传入节点,因此总结列应该给我们n.如果有更好的方法来解决这个问题而不是我正在做的事情,那么任何提示都会受到赞赏,以指导我朝着正确的方向前进.

algorithm directed-graph time-complexity graph-algorithm

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

如何在python中使用列表理解与矩阵?

如何使用列表理解编写以下内容?

def mv(A,X,n):
    Y = [0]*n
    for i in range(n):
        for j in range(n):
            Y[i] += A[i][j] * X[j]
    return Y
Run Code Online (Sandbox Code Playgroud)

我相信A是一个矩阵,X是一个向量.这是我到目前为止所尝试的,但它没有输出相同的东西:

def mv2(A,X,n):
    res = [sum((A[i][j] * X[i]) for i in range(n) for j in range(n))]
    return res
Run Code Online (Sandbox Code Playgroud)

python list-comprehension matrix

2
推荐指数
1
解决办法
663
查看次数

我可以在 Windows 上下载 minicom 应用程序吗?

我正在尝试为 FreeRTOS 项目下载 minicom,该项目是我在 eclipse 中使用 STM32 微控制器进行的。minicom 应用程序应该允许我读取键盘输入,但它适用于 MacOS。有什么方法可以将其下载到 Windows 上吗?

谢谢。

stm32 freertos

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

在python中为什么列表与list [:]不一样?

我有一个列表,ls = [0 1 2 3 4]我正在运行以下内容:

print(ls is ls[:])
Run Code Online (Sandbox Code Playgroud)

我得到的输出为False.为什么他们不是同一个名单?当我打印两个版本时,我会打印相同的列表.

python list

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

如何在有向加权图中将一条边精确设置为零以找到最短路径?

以下是我正在研究的问题:

考虑一个有向加权图 G ,其中所有边的权重都是正的。这个问题的目标是找到G 中 两个预先指定的顶点st之间 的最短路径 ,但有一个额外的扭曲:您可以将(您选择的)恰好一条边的权重更改为零。

换句话说,您必须在G 中选择一条边 以设置为零,以最小化st之间最短路径 。给出一个有效的算法来在O ( E lg V )时间内实现这个目标, 并分析你的算法的运行时间。次优解决方案将获得较少的信用。

提示:您可能需要反转边缘,多次运行熟悉的算法,并做一些额外的工作

所以我尝试将 Dijkstra 从s运行到所有其他节点,然后我尝试反转边缘并再次从s运行它到所有其他节点。但是,我发现我们必须从s所有其他节点运行 Dijskstra ,然后反转边,然后从所有其他节点运行 Dijkstra到t。我不确定这如何帮助我们找到设置为零的边缘。根据我的直觉,我认为我们只需将最大权重边缘设置为零。反转边缘有什么意义?

algorithm directed-graph dijkstra shortest-path weighted-graph

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

在收敛方面比较MSE损失和交叉熵损失

对于一个非常简单的分类问题,我有一个目标向量[0,0,0,... 0]和一个预测向量[0,0.1,0.2,.... 1]会使交叉熵损失更好地收敛/更快还是MSE损失?当我绘制它们时,在我看来,MSE损失具有较低的误差范围.那为什么会这样? 在此输入图像描述

或者,例如当我将目标设为[1,1,1,1 .... 1]时,我得到以下内容: 在此输入图像描述

machine-learning loss mean-square-error logistic-regression cross-entropy

1
推荐指数
2
解决办法
2596
查看次数