小编cda*_*hms的帖子

可以安全删除NuGetScratch目录吗?

下午好,

我正在使用固态硬盘,并且已经接近耗尽空间.在运行WinDirStat(很棒的实用程序!)后,我发现剩余的最大的HD空间是"NuGetScratch"目录,位于:

C:\ Users [用户名]\AppData\Local\Temp\NuGetScratch \

根据名称我的印象是这是一个swap/temp类型文件,可能在没有任何NuGet不良影响的情况下删除.有人可以证实这一点或提供进一步的信息吗?如果重要的话,我正在使用Window 10.

nuget

21
推荐指数
2
解决办法
5661
查看次数

具有多个网络摄像头的 OpenCV - 如何在代码中区分哪个摄像头?

以前,我曾使用具有以太网连接和不同 IP 地址的工业相机来进行多个相机设置。现在我正在尝试使用 OpenCV 进行多相机设置,但我不确定如何将 OpenCV VideoCaptureID 与特定相机相匹配。

我可能应该用我目前的情况作为例子来使我的问题更清楚。我目前连接了 3 个摄像头。如果重要的话,我正在使用 Ubuntu 18.04。这是我的输出lsusb(省略了除我连接的 3 个 Logitech 网络摄像头之外的所有内容):

$ lsusb
Bus 001 Device 013: ID 046d:0843 Logitech, Inc. Webcam C930e
Bus 001 Device 003: ID 046d:0843 Logitech, Inc. Webcam C930e
Bus 001 Device 006: ID 046d:0892 Logitech, Inc. OrbiCam
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我有 2C930e台和 1 台OrbiCam已连接。基于这篇非常有用的文章:

https://superuser.com/questions/902012/how-to-identify-usb-webcam-by-serial-number-from-the-linux-command-line

我发现我可以像这样获取摄像头的序列号:

$ sudo lsusb -v -d 046d:0843 | grep -i serial
  iSerial                 1 D2DF1D2E
  iSerial                 1 99A8F15E
$ sudo lsusb …
Run Code Online (Sandbox Code Playgroud)

webcam camera opencv

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

Android - 将targetSdkVersion设置为22以避免运行时权限,有哪些潜在问题?

有人可以总结将targetSdkVersion设置为22以避免处理运行时权限的缺点吗?

在阅读了Google文档以及其他一些Stack Overflow帖子之后,我发现的唯一不足之处是用户可以在安装时授予权限,然后进入他们的操作系统设置并撤销该特定应用的特定权限,然后再次运行应用程序.然而,从一些例子中我发现在代码中处理这并不困难.

这是否是使用targetSdkVersion 22在安装时强制权限的唯一缺点?这些事情会在未来几年保持这种状态吗?

另外,例如,如果我在build.gradle文件中使用这些设置:

compileSdkVersion 24
buildToolsVersion "24.0.1"
minSdkVersion 19
targetSdkVersion 22
Run Code Online (Sandbox Code Playgroud)

我仍然可以在应用程序中访问API 23和24功能,还是仅限于22及更早版本?

在有人回答"最佳做法是不按照谷歌推荐的方式在运行时根据需要执行此操作"时,是的,我当然知道这一点.是的,我也知道有些例子试图提供锅炉板代码以询问运行时权限,例如:

https://github.com/googlesamples/easypermissions

但是至少有两种情况我可以想到在安装时请求权限并且如果未授予权限则不安装应用程序是非常有利的:

1)假设我报告的那个人在工作周的一半时间问:"你可以把星期五会议的概念验证Android应用程序放在一起,这个会议会让XYZ显示我们当天有一些访问者吗?" 如果我必须拼凑一个快速的alpha版本的应用程序,我只有几天时间来完成它,并且将基本功能放在一起需要很长时间,而应用程序将需要4​​个权限,它会要在安装时为alpha版本要求所有权限要好得多,所以我有时间花在应用程序功能上.然后,如果我继续前进,当我将应用程序移至测试版然后再移至最终版时,根据需要在运行时逐个更改权限请求.

2)某些应用程序绝对需要某些权限才能使用.例如,如果我正在编写一个OpenCV应用程序,该应用程序从相机中获取图像,然后根据图像中的内容执行某些操作,那么最好不要在用户开始时安装此类应用程序.不愿意授予相机许可.

我真的希望Google在安装时作为选项请求/要求权限,并提供在运行时请求权限的选项.是否有任何负面的开发人员反馈,只能决定是否可以在运行时请求权限?谷歌是否可能在安装时或未来版本的运行时允许许可请求,在这种情况下,我可以在过渡期间简单地使用targetSdkVersion 22选项?

permissions android

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

Windows上的Tensorflow对象检测API - 错误"ModuleNotFoundError:没有名为'utils'的模块"

我正在尝试获取TensorFlow对象检测API

https://github.com/tensorflow/models/tree/master/research/object_detection

按照安装说明在Windows上工作

https://github.com/tensorflow/models/tree/master/research/object_detection

这似乎适用于Linux/Mac.如果我将一个脚本放在我克隆上面的repo的目录中,我只能让它工作.如果我将脚本放在任何其他目录中,我会收到此错误:

ModuleNotFoundError: No module named 'utils'
Run Code Online (Sandbox Code Playgroud)

我怀疑原因是没有正确执行上述安装说明中列出的此命令的Windows等效项:

# From tensorflow/models/research/
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
Run Code Online (Sandbox Code Playgroud)

如果重要的话,我正在使用Windows 10,Python 3.6和TensorFlow 1.4.0.当然,我已经用Google搜索了这个问题并发现了各种链接,例如:

https://github.com/tensorflow/models/issues/1747

但这并没有解决这个问题.有关如何解决此问题的任何建议?

以下是我迄今为止所做的步骤:


编辑:这些步骤现在在更新后工作,以纳入RecencyEffect的答案

1)通过pip3安装TensorFlow和相关工具

2)从管理命令提示符处,运行以下命令:

pip3 install pillow
pip3 install lxml
pip3 install jupyter
pip3 install matplotlib
Run Code Online (Sandbox Code Playgroud)

3)在我的例子中,将TensorFlow"模型"存储库克隆到Documents文件夹

C:\Users\cdahms\Documents\models
Run Code Online (Sandbox Code Playgroud)

4)下载了Google Protobuf https://github.com/google/protobuf Windows v3.4.0发行版"protoc-3.4.0-win32.zip"(我尝试了最新的3.5.1并在后续步骤中出错,所以我尝试了3.4.0每个这个视频https://www.youtube.com/watch?v=COlbP62-BU&list=PLQVvvaa0QuDcNK5GeCQnxYnSSaar2tpku&index=1并且protobuf编译工作)

5)具体来说,将Protobuf下载提取到Program Files

"C:\Program Files\protoc-3.4.0-win32"
Run Code Online (Sandbox Code Playgroud)

6)CD进入模型\研究目录,具体而言

cd C:\Users\cdahms\Documents\models\research
Run Code Online (Sandbox Code Playgroud)

7)具体来说,执行了protobuf编译

“C:\Program Files\protoc-3.4.0-win32\bin\protoc.exe” object_detection/protos/*.proto --python_out=.
Run Code Online (Sandbox Code Playgroud)

导航:

C:\Users\cdahms\Documents\models\research\object_detection\protos
Run Code Online (Sandbox Code Playgroud)

并验证.py文件是否因编译而成功创建(仅开始使用.proto文件)

8)cd到object_detection目录,例如:

cd C:\Users\cdahms\Documents\models\research\object_detection
Run Code Online (Sandbox Code Playgroud)

然后在命令提示符下输入以下内容以启动object_detection_tutorial.ipynb Jupyter Notebook

jupyter notebook
Run Code Online (Sandbox Code Playgroud)

9)在Jupyter Notebook中,选择"object_detection_tutorial.ipynb" - >单元格 - >全部运行,该示例应在笔记本内运行

10)在Jupyter笔记本中,选择"文件" - >"下载为" - …

python object-detection tensorflow object-detection-api

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

如何关闭灰色未使用的用途?

如何(假设甚至可能)关闭Visual Studio 2015功能以清除未使用的使用(在C#中使用,在VB中导入)?我喜欢VS中的所有其他突出显示/语法检查/自动编译内容,我只是试图将其关闭以专门用于灰化未使用的使用.

我似乎无法在VS 2015菜单中找到这个选项.如果有人知道这样的选择,请告知位置.

c# vb.net visual-studio visual-studio-2015

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

如何将多行命令行命令复制/粘贴到命令提示符中?

我正在尝试将一些长的多行命令行命令复制/粘贴到 Windows 10 命令提示符中。

Linux 为此使用“\”字符,因此例如在 Linux 中,您可以将以下内容从网站或文本文件复制/粘贴到终端窗口中(我假设这里使用图形桌面环境):

python retrain.py \
    --bottleneck_dir="/tf_files" \
    --how_many_training_steps=500 \
    --model_dir="/tf_files" \
    --output_graph="/tf_files/retrained_graph.pb" \
    --output_labels="/tf_files/retrained_labels.txt" \
    --image_dir="/tf_files/flower_photos"
Run Code Online (Sandbox Code Playgroud)

然后按回车,命令将运行。这在网站或您保存的文本文件中看起来更加清晰。

问题是,我似乎无法为此计算出 Windows 等效项。我意识到 ^ 字符在这种情况下等效于 Linux \ 字符,但它似乎不适用于复制/粘贴。例如,如果制作一个文本文件“dummy1.txt”,则复制/粘贴以下内容:

copy dummy1.txt ^ 
    dummy2.txt
Run Code Online (Sandbox Code Playgroud)

(注意第一行的 ^ 字符两边有一个空格)

我明白了:

在此处输入图片说明

对于这个两行示例,这无关紧要,但是对于更复杂的命令(例如上面的 python 脚本),将所有需要复制/粘贴的文档中的所有内容放在一行中会严重牺牲可读性。有没有办法让它在 Windows 上工作?如果这很重要,我目前正在使用 Windows 10。

windows command-line-interface windows-10

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

如何制作一个简单的Python REST服务器和客户端?

我正在尝试制作尽可能简单的 REST API 服务器和客户端,服务器和客户端都是用 Python 编写并在同一台计算机上运行。

从本教程:

https://blog.miguelgrinberg.com/post/designing-a-restful-api-with-python-and-flask

我将其用于服务器:

# server.py

from flask import Flask, jsonify

app = Flask(__name__)

tasks = [
    {
        'id': 1,
        'title': u'Buy groceries',
        'description': u'Milk, Cheese, Pizza, Fruit, Tylenol',
        'done': False
    },
    {
        'id': 2,
        'title': u'Learn Python',
        'description': u'Need to find a good Python tutorial on the web',
        'done': False
    }
]

@app.route('/todo/api/v1.0/tasks', methods=['GET'])
def get_tasks():
    return jsonify({'tasks': tasks})

if __name__ == '__main__':
    app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)

如果我从命令行运行此命令:

curl -i http://localhost:5000/todo/api/v1.0/tasks
Run Code Online (Sandbox Code Playgroud)

我明白了:

HTTP/1.0 200 OK
Content-Type: application/json …
Run Code Online (Sandbox Code Playgroud)

python rest

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

C++ 工厂模式实现 - 示例、问题和关注点

最近我一直在尝试更好地理解在 C++ 中使用工厂模式。

我查阅了以下资源:

如何在C++中正确实现工厂方法模式

https://www.geeksforgeeks.org/design-patterns-set-2-factory-method/

https://sourcemaking.com/design_patterns/factory_method/cpp/1

https://www.codeproject.com/Articles/363338/Factory-Pattern-in-Cplusplus

https://www.bogotobogo.com/DesignPatterns/factorymethod.php

https://gist.github.com/pazdera/1099562

https://en.wikibooks.org/wiki/C%2B%2B_Programming/Code/Design_Patterns

在有人将其标记为“不是问题”之前,我确实有一些明确的问题,我稍后会讨论。但为了首先澄清我到目前为止的理解,我想从一个例子开始。这是我从上述链接中的信息中得到的最好的例子(最好的含义说明了工厂模式,但尽可能简单,因此该模式的初学者可以清楚地看到所涉及的问题):

// FactoryPattern.cpp

#include <iostream>
#include <vector>

enum AnimalSpecies { dog, cat };


class Animal
{
public:
  virtual void makeSound() = 0;
};

class Dog : public Animal
{
public:
  void makeSound() { std::cout << "woof" << "\n\n"; }
};

class Cat : public Animal
{
public:
  void makeSound() { std::cout << "meow" << "\n\n"; }
};

class AnimalFactory
{
public:
  static Animal* makeAnimal(AnimalSpecies animalSpecies);
};

Animal* AnimalFactory::makeAnimal(AnimalSpecies animalSpecies) …
Run Code Online (Sandbox Code Playgroud)

c++ factory-pattern

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

端口8000与端口8080

我目前正在使用.NET和Python的几个基本Web服务器示例.大多数示例似乎使用8000或8080作为测试端口.任何人都可以澄清这些之间的区别吗?有关系吗?请指教.

http

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

如何在 OpenCV 或 NumPy 中复制 PyTorch 标准化?

我需要在 OpenCV 或 NumPy 中复制 PyTorch 图像标准化。

快速背景故事:我正在做一个项目,我在 PyTorch 中进行训练,但由于部署到嵌入式设备,我将不得不在 OpenCV 中进行推理,而我没有足够的存储空间来安装 PyTorch。在 PyTorch 中进行训练并保存 PyTorch 图后,我将转换为 ONNX 图。为了在 OpenCV 中进行推理,我将图像作为 OpenCV 图像(即 NumPy 数组)打开,然后调整大小,然后连续调用cv2.normalizecv2.dnn.blobFromImagenet.setInputnet.forward

当在 PyTorch 中测试推理与在 OpenCV 中进行推理时,我得到的准确度结果略有不同,我怀疑这种差异是由于归一化过程在两者之间产生了略有不同的结果。

这是我整理的一个快速脚本,用于显示单个图像上的差异。请注意,我使用的是灰度(单通道),并且标准化为 -1.0 到 +1.0 范围:

# scratchpad.py

import torch
import torchvision

import cv2
import numpy as np
import PIL
from PIL import Image

TRANSFORM = torchvision.transforms.Compose([
    torchvision.transforms.Resize((224, 224)),
    torchvision.transforms.ToTensor(),
    torchvision.transforms.Normalize([0.5], [0.5])
])

def main():
    # 1st show PyTorch normalization

    # open the …
Run Code Online (Sandbox Code Playgroud)

python opencv numpy pytorch

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