小编use*_*533的帖子

如何在Java 8 stream forEach中使用if-else逻辑

我想要做的是在下面的2个流调用中显示.我想根据某些条件将一个集合拆分为两个新集合.理想情况下,我想在1中进行.我已经看到了用于.map函数的条件,但找不到forEach的任何内容.实现我想要的最好方法是什么?

    animalMap.entrySet().stream()
            .filter(pair-> pair.getValue() != null)
            .forEach(pair-> myMap.put(pair.getKey(), pair.getValue()));

    animalMap.entrySet().stream()
            .filter(pair-> pair.getValue() == null)
            .forEach(pair-> myList.add(pair.getKey()));
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

41
推荐指数
4
解决办法
13万
查看次数

在Pytorch评估过程中耗尽内存

我在pytorch训练模型.每10个时代,我正在评估整列火车和测试数据集的列车和测试误差.由于某种原因,评估功能导致我的GPU内存不足.这很奇怪,因为我有相同的批量大小用于培训和评估.我相信这是由于net.forward()方法被重复调用并将所有隐藏值存储在内存中但我不知道如何解决这个问题?

def evaluate(self, data):
    correct = 0
    total = 0
    loader = self.train_loader if data == "train" else self.test_loader
    for step, (story, question, answer) in enumerate(loader):
        story = Variable(story)
        question = Variable(question)
        answer = Variable(answer)
        _, answer = torch.max(answer, 1)

        if self.config.cuda:
            story = story.cuda()
            question = question.cuda()
            answer = answer.cuda()

        pred_prob = self.mem_n2n(story, question)[0]
        _, output_max_index = torch.max(pred_prob, 1)
        toadd = (answer == output_max_index).float().sum().data[0]
        correct = correct + toadd
        total = total + captions.size(0)

    acc = correct / total …
Run Code Online (Sandbox Code Playgroud)

pytorch

9
推荐指数
2
解决办法
7214
查看次数

是否可以在Android上使用OpenCV进行缩放和聚焦?

我正在使用OpenCV在Android上进行一些图像检测.我注意到如果试图将它拿到一个小物体上,那么OpenCV相机会非常模糊.有没有办法缩放相机和/或自定义焦点模式?我熟悉在常规的Android相机类上实现触摸焦点,但我不确定OpenCV的类有什么可能.我在网上找不到多少.

干杯,凯文

android opencv detection cascade-classifier opencv4android

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

使用 Java 8 流和 CompletableFuture 的并行数据库调用

我想用 Java 8 流复制和并行化以下行为:

for (animal : animalList) {
        // find all other animals with the same breed
        Collection<Animal> queryResult = queryDatabase(animal.getBreed());

        if (animal.getSpecie() == cat) {
            catList.addAll(queryResult);
        } else {
            dogList.addAll(queryResult);
        }
}
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止

final Executor queryExecutor =
        Executors.newFixedThreadPool(Math.min(animalList.size(), 10),
                new ThreadFactory(){
                    public Thread newThread(Runnable r){
                        Thread t = new Thread(r);
                        t.setDaemon(true);
                        return t;
                    }
                });

List<CompletableFuture<Collection<Animal>>> listFutureResult =  animalList.stream()
        .map(animal -> CompletableFuture.supplyAsync(
                () -> queryDatabase(animal.getBreed()), queryExecutor))
        .collect(Collectors.toList());

List<Animal> = listFutureResult.stream()
        .map(CompletableFuture::join)
        .flatMap(subList -> subList.stream())
        .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

1 - 我不知道如何拆分流,以便获得 …

java java-stream completable-future

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

每次迭代for循环的Tensorflow变得越来越慢

我正在为我的算法做一些评估,我通过计算两个图像之间的3种不同类型的损失来比较一些生成的图像和地面实况图像.代码的逻辑是:

  1. 我遍布所有地面真相图像
  2. 对于每个地面实况图像,我遍历相关的生成图像,并通过计算3个损失来检查每个地面真实图像

如下所示,每次迭代的代码运行时间都在增加.这使得代码无法在合理的时间内完成运行.可能是什么导致了这个?

代码包含在下面.此外,我正在使用爱德华图书馆的Tensorflow,如果这是相关的.我使用以下命令创建会话:

sess = ed.get_session()
Run Code Online (Sandbox Code Playgroud)

开始评估...... 100%|██████████████████████████████████████████ ███| 40/40 [01:36 <00:00,2.53s/it] ----------摘要图片001 ------------开始评价...... 100%| █████████████████████████████████████████████| 40/40 [01:44 <00:00,2.61s/it] ----------摘要图片002 ------------开始评价...... 100%| █████████████████████████████████████████████| 40/40 [01:57 <00:00,3.59s/it] ----------摘要图003 ------------开始评价...... 100%| █████████████████████████████████████████████| 40/40 [02:16 <00:00,3.34s/it] ----------摘要图004 ------------开始评价...... 100%| █████████████████████████████████████████████| 40/40 [02:25 <00:00,3.56s/it] ----------摘要图005 ------------开始评价...... 100%| █████████████████████████████████████████████| 40/40 [02:45 <00:00,4.00s/it] ----------摘要图006 ------------开始评价...... 100%| █████████████████████████████████████████████| 40/40 [02:54 <00:00,4.19s/it] ----------摘要图007 ------------开始评价...... 100%| █████████████████████████████████████████████| 40/40 [03:11 <00:00,4.58s/it] ----------摘要图片008 ------------开始评价...... 100%| ████████████████████████████████████████████| 40/40 [03:26 <00:00,5.02s/it] ----------摘要图片009 ------------开始评价...... 100%| ████████████████████████████████████████████| 40/40 [03:38 <00:00,5.58s/it] ----------摘要图片010 ------------开始评价...... 100%| …

tensorflow

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