安装 docker-ce 后,我尝试安装 nvidia-docker。我按照这个:https : //github.com/NVIDIA/nvidia-docker安装 nvidia-docker。它似乎已正确安装。
我试着跑:
$ sudo docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
docker: Error response from daemon: Unknown runtime specified nvidia.
See 'docker run --help'.
Run Code Online (Sandbox Code Playgroud)
虽然,这有效(没有 --runtime=nvidia):
$ docker container run -ti ubuntu bash
Run Code Online (Sandbox Code Playgroud)
我的系统上的一些附加信息:它是一个带有 8 个 GPU(Titan Xp)和 nvidia 驱动程序版本 387.26 的 ubuntu 服务器 16.04。我可以在主机系统上运行 nvidia-smi -l 1 并且它按预期工作。
$ dpkg -l | grep -E '(nvidia|docker)'
ii docker-ce 18.06.1~ce~3-0~ubuntu amd64 Docker: the open-source application container engine
ii libnvidia-container-tools 1.0.0-1 amd64 NVIDIA container runtime …
Run Code Online (Sandbox Code Playgroud) 我试图使用openmp计算2d矩阵的平均值.这个2d矩阵实际上是一个图像.
我正在进行线程划分数据.例如,如果我有N个线程,则使用thread0处理Rows/N个行,依此类推.
我的问题是我可以使用openmp减少条款"#pragma omp parallel"吗?就像是
#pragma omp parallel reduction( + : sum )
{
if( thread == 0 )
bla bla code
sum = sum + val;
else if( thread == 1 )
bla bla code
sum = sum + val;
}
Run Code Online (Sandbox Code Playgroud) 我在Ubuntu 12.04上使用OpenCV2.我可以成功运行图像读取显示代码.但是我无法运行具有内置函数的代码,例如.cvtColor()
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <stdio.h>
int main(int argc, char *argv[])
{
cv::Mat image = cv::imread("img.jpg");
if( image.data == NULL )
{
printf( "file cannot be loaded\n");
return 1;
}
cv::namedWindow("My");
cv::imshow("My", image);
cv::Mat result;
cv::cvtColor(image, result, CV_BGR2Luv);
cv::imwrite("outImg.jpg", result);
cv::waitKey(0);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我使用Qt-creator作为我的OpenCV使用--libs编译后, - cflags我得到以下编译器错误:
make: Entering directory `/home/swaroop/Work/ai-junkies/cuda/uc_davis/opencv2.x/OpenCV2Test'
g++ -g -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4 -I/usr/include/opencv -I. -o main.o main.cpp
main.cpp: In function 'int main(int, char**)': …
Run Code Online (Sandbox Code Playgroud) 我有一个 .js 文件,其中定义了一个类。我想从<script>
另一个 html 文件调用这个类。
组件.js:
class TryClass {
constructor(name) {
this.name = name;
}
sayHi() {
alert( this.name );
}
}
Run Code Online (Sandbox Code Playgroud)
主要.html:
<html>
<script src="./component.js" />
<script>
var user = new TryClass( "John" );
user.sayHi();
</script>
<body>
</body>
Run Code Online (Sandbox Code Playgroud)
当我加载 main.html (从我的网络服务器)时,这不会显示警报。但是,通过检查控制台,我可以使用 TryClass。
如何解决这个问题?
我想深入缝合.我在用cv::detail
.
我试着效仿这个例子:
我粗略地了解拼接管道.
有一个matchesGraphAsString()
返回图形的函数.我想知道它是如何计算这个图的.此外,在这种情况下,置信区间的限定是什么.
输出采用DOT格式,示例图如下
graph matches_graph{
"15.jpg" -- "13.jpg"[label="Nm=75, Ni=50, C=1.63934"];
"15.jpg" -- "12.jpg"[label="Nm=47, Ni=28, C=1.26697"];
"15.jpg" -- "14.jpg"[label="Nm=149, Ni=117, C=2.22011"];
"11.jpg" -- "13.jpg"[label="Nm=71, Ni=52, C=1.77474"];
"11.jpg" -- "9.jpg"[label="Nm=46, Ni=37, C=1.69725"];
"11.jpg" -- "10.jpg"[label="Nm=87, Ni=73, C=2.14076"];
"9.jpg" -- "8.jpg"[label="Nm=122, Ni=99, C=2.21973"];
}
Run Code Online (Sandbox Code Playgroud)
是什么label
,Nm
和Ni
这里的意思?官方文件似乎缺乏这些细节.
我正在使用GLFW3来处理OpenGL3.3 +的窗口.一切正常,但是我不明白为什么每当我按下A键时它会打印"A press"两次.特别是我希望它只能打印1次按键A.
static void My_Key_Callback(GLFWwindow* window, int key, int scancode, int action, int mods)
{
if( key == 'A' )
{
std::cout<< "A pressed\n";
return;
}
}
int main( int argc, char ** argv )
{
// --1-- Initialise GLFW
if( glfwInit() == false )
{
std::cerr << "Failed to initialize GLFW3\nQuiting....\n";
exit(1);
}
// --2-- Create Window
glfwWindowHint(GLFW_SAMPLES, 4); // 4x antialiasing
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); // We want OpenGL 3.3
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); // To make MacOS happy; …
Run Code Online (Sandbox Code Playgroud) 我有cv::Mat
A
,有CV_32F
.但它保存整数值,如1,2 .... 100.我想形成一个大小相同的面具A
.
但是如果A(x,y)不等于5(假设),则掩码必须包含零.如果A(x,y)等于5(假设),则掩码必须包含1.
我想稍后将其用作ROI.
我有一个自定义的 .msg 文件 MyImage.msg
sensor_msgs/Image im
float32 age
string name
Run Code Online (Sandbox Code Playgroud)
我已经配置了自定义 .msg 文件,如链接所示:CreatingMsgAndSrv
此外,我正在尝试使用此 msg 编写一个简单的发布者。
#include <ros/ros.h>
#include <custom_msg/MyImage.h>
#include <image_transport/image_transport.h>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <cv_bridge/cv_bridge.h>
int main( int argc, char ** argv )
{
ros::init(argc, argv, "publish_custom");
ros::NodeHandle nh;
ros::Publisher pub2 = nh.advertise<custom_msg::MyImage>("custom_image", 2 );
cv::Mat image = cv::imread( "Lenna.png", CV_LOAD_IMAGE_COLOR );
sensor_msgs::ImagePtr im_msg = cv_bridge::CvImage(std_msgs::Header(), "bgr8", image).toImageMsg();
ros::Rate rate( 2 );
while( ros::ok() )
{
ROS_INFO_STREAM_ONCE( "IN main loop");
custom_msg::MyImage msg2;
msg2.age=54.3;
msg2.im = im_msg; …
Run Code Online (Sandbox Code Playgroud) 当我编译(g++ -std=c++14 map.cpp
)并运行该程序时,它似乎没有终止。谁能解释为什么?但是,当我确实找到('a')而不是'c'时,它给出了零。
#include <iostream>
#include <string>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
int main()
{
map<char, float> m;
m['a'] = 3.4;
m['b'] = 5.3;
m['c'] = 33.3;
m['d'] = 43.;
auto it = m.find( 'c' );
cout << "distance : " << std::distance( it , m.begin() ) << endl;
}
Run Code Online (Sandbox Code Playgroud) 我有两个cv::Point2f
,像 -
cv::Point2f a = cv::Point2f( 2.34, 6.2 );
cv::Point2f b = cv::Point2f( 8.34, 16.2 );
Run Code Online (Sandbox Code Playgroud)
现在,我想找到a和b的中点.
cv::Point2f midi = (a+b)/2;
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用.有什么工作吗?
我使用的是Ubuntu 12.04.我的系统给出了Boost 1.46.由于我不得不使用boost lockfree队列,我尝试从官方Boost网站安装1.59.因此,我实际上安装了2个版本的boost.系统默认安装在/ usr/local中安装的/ usr /&version 1.59中.
我有一个使用cmake的代码库.它是一个相当大的代码库.我怀疑CMake仍在关注版本1.46.我应该修复它以查看/ usr/local中的版本1.59.
我的CMakeFiles(仅限相关部分):
find_package(Boost 1.59 EXACT REQUIRED COMPONENTS system thread date_time)
include_directories(${Boost_INCLUDE_DIRS})
find_package(Threads REQUIRED)
target_link_libraries( hello_node
${Boost_THREAD_LIBRARY}
${catkin_LIBRARIES}
boost_system
boost_thread
rt
boost_date_time
)
target_link_libraries( dgem
${Boost_THREAD_LIBRARY}
${catkin_LIBRARIES}
boost_system
boost_thread
rt
boost_date_time
)
Run Code Online (Sandbox Code Playgroud)
有了这个,cmake似乎使用/ usr/include(即旧版本的boost).
我试图在Ubuntu 12.04上使用CUDA代码与Qt一起工作
我的cuda_interface.cu
// CUDA-C includes
#include <cuda.h>
extern "C"
void runCudaPart();
// Main cuda function
void runCudaPart() {
// all your cuda code here *smile*
}
Run Code Online (Sandbox Code Playgroud)
我的main.cpp #include
extern "C"
void runCudaPart();
int main(int argc, char *argv[])
{
runCudaPart();
}
Run Code Online (Sandbox Code Playgroud)
我的简历
#-------------------------------------------------
#
# Project created by QtCreator 2013-04-17T10:50:37
#
#-------------------------------------------------
QT += core
QT -= gui
TARGET = QtCuda
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
# This makes the .cu files appear …
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建boost::lockfree::queue
以下示例: http://www.boost.org/doc/libs/1_54_0/doc/html/lockfree/examples.html
我可以成功地为 int (整数数据类型)创建它。但是,我很难为 Eigen::MatrixXf 创建队列。队列声明于SolveDGEM.h
。
boost::lockfree::queue<Eigen::MatrixXf> q_cam0;\n
Run Code Online (Sandbox Code Playgroud)\n\n我收到以下我无法理解的编译器错误
\n\nIn file included from /home/eeuser/ros_workspaces/HeloRosProject/src/visensor_dgem/include/SolveDGEM.h:38:0,\n from /home/eeuser/ros_workspaces/HeloRosProject/src/visensor_dgem/src/dgem.cpp:4:\n/usr/local/include/boost/lockfree/queue.hpp: In instantiation of \xe2\x80\x98boost::lockfree::queue<Eigen::Matrix<float, -0x00000000000000001, -0x00000000000000001> >\xe2\x80\x99:\n/home/eeuser/ros_workspaces/HeloRosProject/src/visensor_dgem/include/SolveDGEM.h:76:45: instantiated from here\n/usr/local/include/boost/lockfree/queue.hpp:86:1: error: invalid application of \xe2\x80\x98sizeof\xe2\x80\x99 to incomplete type \xe2\x80\x98boost::STATIC_ASSERTION_FAILURE<false>\xe2\x80\x99 \n/usr/local/include/boost/lockfree/queue.hpp: In instantiation of \xe2\x80\x98boost::lockfree::queue<Eigen::Matrix<float, -0x00000000000000001, -0x00000000000000001> >\xe2\x80\x99:\n/home/eeuser/ros_workspaces/HeloRosProject/src/visensor_dgem/include/SolveDGEM.h:76:45: instantiated from here\n/usr/local/include/boost/lockfree/queue.hpp:90:1: error: invalid application of \xe2\x80\x98sizeof\xe2\x80\x99 to incomplete type \xe2\x80\x98boost::STATIC_ASSERTION_FAILURE<false>\xe2\x80\x99 \n
Run Code Online (Sandbox Code Playgroud)\n