为什么选择张力流以右下角选择填充? 使用SAME填充,对我来说,以第一个真实像素开始内核中心锚是合乎逻辑的.由于使用了不对称的填充,这会导致与其他一些框架的差异.我确实知道原则上的不对称填充是好的,因为否则将留下未使用的填充行/列. 如果张力流可以在左侧和顶部填充填充物,则它的卷积和权重与Caffe/cudnn/$frameworks相同,并且无论填充如何,重量转换都会兼容. 代码: import numpy as np import tensorflow as tf import torch import torch.nn as nn tf.enable_eager_execution() def conv1d_tf(data, kernel_weights, stride): filters = np.reshape(kernel_weights, [len(kernel_weights), 1, 1]) out = tf.nn.conv1
以下是关于 caffe 的编程技术问答
我有一个错误, caffe build.我该如何修复? 我正在使用Mac OSX Yosemite 10.10.1. 控制台日志 Machida-no-MacBook-Air:caffe machidahiroaki$ /usr/bin/clang++ -shared -o .build_release/lib/libcaffe.so .build_release/src/caffe/proto/caffe.pb.o .build_release/src/caffe/proto/caffe_pretty_print.pb.o .build_release/src/caffe/blob.o .build_release/src/caffe/common.o .build_release/src/caffe/data_transformer.o .build_release/src/caffe/dataset_factory.o .build_release/src/caffe/
我正在尝试在优胜美地安装咖啡馆,而我的C并不是最强的.这是我的错误: Alis-MacBook-Pro:caffe ali$ make all NVCC src/caffe/layers/absval_layer.cu /usr/local/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp(27): error: expected a ";" /usr/local/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp(29): error: inline specifier allowed on function declarations only /usr/local/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp(29): error: incomplete type is not al
背景: 我希望同时使用 caffe and 数字使我可以在数字框架或外部使用Caffe. 但是,对于一个特定的项目,我要求Caffe使用OpenCV 3而不是OpenCV 2.4,该数字默认情况下安装了数字.该项目使用Caffe外部用于数字,并且不使用数字框架. 看来,通过安装数字,我的openCv 3安装被opencv 2.4"凝结",这现在在我的原始caffe安装中引起了问题. 使事情变得更清晰,以下是我采取的步骤的清单. 来自新鲜的Ubuntu 14.04安装: 按照 ubuntulolofor 安装指南 从源到/usr/local 安装了OPENCV 3 测试的OPENCV安装 演示效果很好,包括OpenCV 3特异性代码 编译的Caffe,设置Makefile.config使用OpenCV 3 测试的CAFFE安装 所有测试通过,演示工作正常 按照 caffe和opencv 2.4默认由安装程序脚本安装 OpenCV
我使用数字(NVCAFFE)培训了我的模型,并且在OpenCV中使用了它,类似于使用.prototxt&caffemodel的OpenCV示例,我对其进行了测试并效果很好. 但是,当我使用数字训练的模型时,我会收到此错误: OpenCV Error: Assertion failed (pbBlob.raw_data_type() == caffe::FLOAT16) in blobFromProto, file /opt/opencv/modules/dnn/src/caffe/caffe_importer.cpp, line 242 Exception: /opt/opencv/modules/dnn/src/caffe/caffe_importer.cpp:242: error: (-215) pbBlob.raw_data_type() == caffe::FLOAT16 in function blobFromProto 帮助我解决它! 这个问题很多次没有答
我已经使用了net = cv2.dnn.readNetFromCaffe(protoFile, weightsFile),然后通过实时视频帧循环以使用net.forward()>. 获取每个帧的输出 但是,net.forward()每个帧需要7到10秒才能给出结果.请帮助我如何提高性能(减少在net.forward()中处理的时间). 含义:从步骤1到步骤2,每个帧需要7到10秒. (以下代码中提到了step1和step2). import cv2 import time import numpy as np protoFile = "deploy.prototxt" weightsFile = "iter_10.caffemodel" inWidth = 300 inHeight = 300 # web camera cap = cv2.VideoCapture(0) hasFrame, frame = cap.read() net = cv2.dnn.r
我想将VGG_ILSVRC_19_LAYERS用作数字验证的模型,但使用不同的数据集. 我需要不同的标签文件吗?我如何上传此模型并将其用于数据集? 对于VGG 16层,我得到了 错误:无法从" fc6"一层复制参数0权重;形状不匹配. 源参数形状为1 1 4096 25088(102760448);目标参数形状 IS 4096 32768(134217728).从中学习此层的参数 刮擦而不是从保存的网中复制,而是重命名. 如何修改图层? 解决方案 您的标签与数据集相关联,而不是模型.当您上传预验证的VGG型号时,您可能需要重命名上一个内部产品层(请参阅 this Answer )您的模型将在N类中使用,而不是1000.
阅读语义分割纸时,有时我可以阅读术语,例如蒙版图像的一壁式标签.我不清楚这是什么意思?阅读某些实现时,我可以看到它们通常是形状rows*columns*2 我的猜测是一个通道对应于前景,另一个通道对应于背景.是对的吗?此外,我怎么知道哪个是前景?如果现有的训练集仅为形状rows*columns*1.如何将其传输到这种类型的格式,即rows*columns*2?我正在做的只是使用newimage[:,:,:,0] = original_image和newimage[:,:,:,1] = 1-original_image.但是我不确定是对的吗? 解决方案 分类标签,例如1,2,3,4,5等.没有任何自然订购.因此,使用这些数字可能意味着标签5大于标签1,但冰箱和狗只是两个标签,没有自然排序. 所以我们将标签1,2,3,4,5转换为 [1,0,0,0,0],[0,1,0,0,0],...,[0,0,0,0,0] 所以现在它们只是指向某个方向的向量,它使使用逻辑回
OS:Ubuntu 16.04 库达:7.5 cudnn:5 我正在关注 >使用GPU安装CAFFE的教程. 在这里,我想要安装OpenCV 3.1.但是OpenCV的汇编是在系统中安装CUDA时会出现错误. 我尝试make opencv 3.1是: /usr/include/string.h: In function ‘void* __mempcpy_inline(void*, const void*, size_t)’: /usr/include/string.h:652:42: error: ‘memcpy’ was not declared in this scope return (char *) memcpy (__dest, __src, __n) + __n; ^ CMake Error at cuda_compile_generated_gpu_mat.cu.o.
我试图用Ubuntu 14.04机器上的Python接口编译Caffe. 我已经使用conda install opencv安装了Anaconda和OpenCV.我还安装了在咖啡中规定的所有要求,并更改了makefile.config中的注释块,以便Python_lib和Python_include指向Anaconda发行版. 当我打电话make all时,发出以下命令: g++ .build_release/tools/caffe.o -o .build_release/tools/caffe.bin -pthread -fPIC -DNDEBUG -O2 -DWITH_PYTHON_LAYER -I/home/andrei/anaconda/include -I/home/andrei/anaconda/include/python2.7 -I/home/andrei/anaconda/lib/python2.7/site-packages/numpy/co
我已经安装了CUDA 9.1+cudnn-9.1+opencv 3.4.0+caffe. 当我尝试在caffe目录中运行make all -j8时,发生此错误: NVCC致命:不支持的GPU架构'Compute_20' 我试图运行: "cmake -D CMAKE_BUILD_TYPE=RELEASE -D CUDA_GENERATION=Kepler .." 但是它不起作用. 在/a>从这些行中删除compute_2*架构(注释说明原因): # CUDA architecture setting: going with all of them. # For CUDA
我在编译修改后的Caffe版本时遇到了此错误. OpenCV static library was compiled with CUDA 7.5 support. Please, use the same version or rebuild OpenCV with CUDA 8.0 我有一些旧代码可能与cuda8.0不兼容,所以我想更改我的cuda版本. 我像这样修改了我的〜/.bash_profile # export PYTHONPATH=$PYTHONPATH:/usr/local/cuda-8.0/lib64/ # export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-8.0/lib64 export PYTHONPATH=$PYTHONPATH:/usr/local/cuda-7.5/targets/x86_64-linux/lib/ export LD_LIBRARY_PATH=$LD_LIB
我与gpu comipled caffe一起,然后 cp caffe/build/Makefile openpose/Makefile.conf 运行 make all -j 6 有这些错误: -- Generating done -- Build files have been written to: /path/to/caffe/build CXX/LD -o ._release/examples/tutorial_thread/1_openpose_read_and_display.bin ._release/lib/libopenpose.so: undefined reference to `cv::VideoCapture::VideoCapture(cv::String const&)' ._release/lib/libopenpose.so: undefined reference to `cv::VideoCapture::set(int,
使用没有NVIDIA图形卡的内置图形卡,我可以使用CUDA和CAFFE库吗? 我的O/S是Ubuntu 15 CPU IS(Intel)I5-4670(3.40GHz 4核心) RAM为12.0GB 我想开始学习深度学习. 解决方案 CUDA适用于NVIDIA图形卡.因此,您无法使用PC中的Caffe构建的CUDA. 仍然,您可以在构建过程中使用CPU_ONLY标志,并使CAFFE在系统上工作.但是,您可以期望培训与使用图形卡时应该得到的培训太慢. 有各种各样的caffe叉子项目使其可以在其他图形卡上使用,并且可以在git上使用.但是,与原始Caffe的主分支相比,这些项目中的大多数都已经过时了. . 可以找到caffe的opencl实施在这里.
在用户指南中,需要使用NCHW格式. 什么是nchw fomat? 如何将CV :: MAT转换为NCHW格式? i使用Tensorrt像以下代码一样运行推理. 没有任何错误.但是,这不是输出的正确结果. int batchSize = 1; int size_of_single_input = 256 * 256 * 3 * sizeof(float); int size_of_single_output = 100 * 1 * 1 * sizeof(float); IBuilder* builder = createInferBuilder(gLogger); INetworkDefinition* network = builder->createNetwork(); CaffeParser parser; auto blob_name_to_tensor = parser.parse(“deploy.prototxt”,
Cudnn安装手册说 所有平台 将Cudnn存档提取到您选择的目录中,以下称为. 然后按照以下方式按照特定于平台的说明. linux CD export ld_library_path =`pwd`:$ ld_library_path 通过将-i添加到您的编译中来添加您的构建和链接过程 线和-l -lcudnn到您的链接行. 看来它只是将pwd添加到LD_LIBRARY_PATH,所以我想只是替换pwd中的文件将进行更新. ,但似乎并不是那么简单,就像我这样做之后,我收到了Theano的抱怨 cudnn版本太旧了.更新到V5,为3007. 解决方案 替换cudnn.h dir/cuda/include/ 在dir/cuda/lib64/ 中删除旧的库文件 将新库文件添加到dir/cuda/lib64/ 其他解决方案 我编写了一个脚本,该脚本可用于清洁安装Cudnn版本或将现有的Cudnn更改为较旧/较新版本.您可以从:
我发现了与我类似的问题的许多答案,但我不认为这里已经直接解决了这里的问题,而且我还有一些其他问题.共享连续的numpy阵列的动机如下: 我正在使用caffe上运行的卷积神经网络对图像进行回归,以对一系列连续值标签进行回归. 这些图像需要特定的预处理和数据增强. (1)标签的连续性质(它们是浮子)和(2)数据增强的约束,意味着我正在预处理python中的数据,然后使用In In in in in in in in in in in python中的数据 - caffe中的记忆数据层. 将训练数据加载到内存相对较慢.我想并行化它: (1)我正在写的Python创建了一个"数据处理程序"类,该类实例化了两个连续的numpy数组. (2)一个工作过程在那些Numpy阵列之间交替,从磁盘上加载数据,执行预处理并将数据插入到Numpy阵列中. (3)同时,Python Caffe包装器将数据从其他数组发送到GPU,以通过网络运行. 我有几个问题: 是否可以在连续的num
我有一个caffemodel文件,其中包含以太坊的caffe-tensorflow转换实用程序不支持的层.我想生成我的caffemodel的数字表示. 我的问题是,如何将caffemodel文件(如果有用的话也有原始文件)转换为numpy文件? 附加信息:我安装了带有Python接口等的Python,Caffe.我显然没有Caffe. 解决方案 这是一个不错的功能,可以将咖啡网净转换为python词典列表,因此您可以腌制并无论如何都要阅读它: import caffe def shai_net_to_py_readable(prototxt_filename, caffemodel_filename): net = caffe.Net(prototxt_filename, caffemodel_filename, caffe.TEST) # read the net + weights pynet_ = [] for li in xrange(l
我希望使用模型.但是我很难正确地定义它. 使用INFOGAIN_LOSS层的使用中有任何教程/示例? 应该输入该层的输入,类概率,是SOFTMAX层的输出,还是足以输入完全连接的层的"顶部"? INFOGAIN_LOSS需要三个输入:类概率,标签和矩阵H. 矩阵H可以作为图层参数infogain_loss_param { source: "fiename" }提供. 假设我有一个python脚本,该脚本将H计算为(L,L)的numpy.array (L,L)(其中L是我的模型中的标签数). 如何将我的numpy.array转换为binproto可以作为infogain_loss_param { source }提供的文件? 假设我希望将H作为损耗层的第三个输入(底部)(而不是模型参数).我该怎么做? 我是否定义一个"顶部"的新数据层是H?如果是这样,是否会像培训数据一样增加该层的数据吗? 如何定义多个无关的输入"数据"层,Caffe知道如何从培训/测试"
最近,许多深层建筑都使用"批处理标准化"进行培训. 什么是"批准归一化"?它用数学做什么?它以什么方式帮助培训过程? 训练过程中如何使用批归归式化?它是插入模型的特殊层吗?我需要在每一层之前还是只有一次? 假设我使用批处理的归一化进行训练.这会影响我的测试时间模型吗?我应该在"部署"网络中用其他/同等的层/操作替换批处理? 这个问题关于批次归一化仅涵盖了一个问题的一部分,我的目标是,我希望并希望有一个更详细的答案.更具体地说,我想知道批处理归一化培训如何影响测试时间预测,即"部署"网络和网络的测试阶段. 解决方案 批量归一化是针对可能遭受有害漂移的层.数学很简单:找到每个组件的平均值和方差,然后应用标准转换以将所有值转换为相应的z得分:减去平均值和除以标准偏差.这样可以确保组件范围非常相似,因此它们每个人都有机会影响培训三角洲(在后置). . 如果您使用网络进行纯测试(无需进一步培训),则只需删除这些层即可.他们已经完成了工作.如果您在测试/预测/