小编Har*_*han的帖子

标量(0,255,0)在opencv中不给出绿色线条

我正在尝试在图像上绘制渐变线.我希望我的线条是绿色的,我使用Scalar(0,255,0).不过,我只有黑色.对于标量(0,0,0),我也变黑了.对于标量(255,255,255),我得到白色,但没有其他任何组合的颜色.部分代码如下:

line(visual_image,
     Point(x1*scaleFactor, y1*scaleFactor),
     Point(x2*scaleFactor, y2*scaleFactor),
     Scalar(0,255,0),
     1,8,0);
Run Code Online (Sandbox Code Playgroud)

opencv

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

如何更新解卷积层的权重?

我正在尝试开发一个反卷积层(或准确的转置卷积层).

在前向传递中,我做了一个完整的卷积(零填充卷积)在后向传递中,我做了一个有效的卷积(没有填充的卷积)将错误传递给前一层

偏差的梯度很容易计算,只需要在多余尺寸上求平均值.

问题是我不知道如何更新卷积滤波器的权重.什么是渐变?我确定这是一个卷积操作,但我不知道如何.我尝试了输入的有效卷积和错误但无济于事.

machine-learning convolution deep-learning deconvolution

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

如何在熊猫列中删除不包含字符串类型的行?

我有一个包含四列的csv文件。我这样阅读:

df = pd.read_csv('my.csv', error_bad_lines=False, sep='\t', header=None, names=['A', 'B', 'C', 'D'])
Run Code Online (Sandbox Code Playgroud)

现在,字段C包含字符串值。但是在某些行中有非字符串类型(浮点数或数字)值。如何删除那些行?我正在使用Pandas的0.18.1版本。

python string dataframe python-2.7 pandas

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

如何在PyTorch数据加载器中将RGB图像转换为灰度图像?

我已经从MNIST数据集中以.jpg格式下载了一些样本图像。现在,我正在加载这些图像以测试我的预训练模型。

# transforms to apply to the data
trans = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,))])

# MNIST dataset
test_dataset = dataset.ImageFolder(root=DATA_PATH, transform=trans)

# Data loader
test_loader = DataLoader(dataset=test_dataset, batch_size=batch_size, shuffle=False)
Run Code Online (Sandbox Code Playgroud)

这里DATA_PATH包含带有示例图像的子文件夹。

这是我的网络定义

# Convolutional neural network (two convolutional layers)
class ConvNet(nn.Module):
    def __init__(self):
        super(ConvNet, self).__init__()
        self.network2D = nn.Sequential(
           nn.Conv2d(1, 32, kernel_size=5, stride=1, padding=2),
           nn.ReLU(),
           nn.MaxPool2d(kernel_size=2, stride=2),
           nn.Conv2d(32, 64, kernel_size=5, stride=1, padding=2),
           nn.ReLU(),
           nn.MaxPool2d(kernel_size=2, stride=2))
        self.network1D = nn.Sequential(
           nn.Dropout(),
           nn.Linear(7 * 7 * 64, 1000),
           nn.Linear(1000, 10))

    def forward(self, …
Run Code Online (Sandbox Code Playgroud)

python pytorch

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

使用skimage.color.rgb2lab()将RGB三元组转换为LAB三元组

我可以使用skimage.color.rgb2lab()将图像从RGB颜色空间转换为LAB颜色空间.但是当我尝试将单个RGB三元组转换为LAB三元组时

rgb_color = [0.1,0.2,0.3]
lab_color = color.rgb2lab(rgb_color)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ValueError: the input array must be have a shape == (.., ..,[ ..,] 3)), got (3)
Run Code Online (Sandbox Code Playgroud)

这样做的正确方法是什么?我正在使用Python 2.7.

python colors python-2.7

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

从 Python 中的 caffe .prototxt 模型定义中读取网络参数

我想从.prototxtPython 中定义的 caffe 网络中读出网络参数,作为layer_dict唯一的层对象告诉我,例如,它是一个“卷积”层,而不是像kernel_sizestrides等等。.prototxt文件。

所以让我们说我有一个model.prototxt这样的:

name: "Model"
layer {
  name: "data"
  type: "Input"
  top: "data"
  input_param {
    shape: {
      dim: 64
      dim: 1
      dim: 28
      dim: 28
    }
  }
}
layer {
  name: "conv2d_1"
  type: "Convolution"
  bottom: "data"
  top: "conv2d_1"
  convolution_param {
    num_output: 32
    kernel_size: 3
    stride: 1
    weight_filler {
      type: "gaussian" # initialize the filters from a Gaussian
      std: 0.01        # distribution with stdev 0.01 (default mean: …
Run Code Online (Sandbox Code Playgroud)

python protocol-buffers caffe pycaffe

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

fgets上的循环退出条件不起作用

我有这样的文本文件

"input"
height : 227
width : 227
depth : 3

"conv"
num_output : 96
pad : 0
kernel_size : 11
stride : 4
group : 1

"relu"

"pool"
kernel_size : 3
stride : 2
Run Code Online (Sandbox Code Playgroud)

我在循环中读它(这是部分代码)

char line[100];

while ((fgets(line, sizeof(line), filePtr))) {
    if (line[0] != "\n") {
        sscanf(line, "%15s : %15s", tmpstr1, tmpstr2);
        printf("%s\n",  tmpstr2);
        printf("line = %s", line);
    } else
        break;
}
Run Code Online (Sandbox Code Playgroud)

但我观察到if条件总是成立,输出如下

"input"
227
line = height : 227
227
line = width : 227 …
Run Code Online (Sandbox Code Playgroud)

c string loops fgets

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

如何在OpenCL内核中按顺序执行函数?

我有一个OpenCL内核,它从设备中调用某些函数并提供一些输出.我正在处理一个图像,使得首先执行垂直传递,然后完成水平传递.目前,我通过修改每个调用中的参数值,从主机端调用内核两次.

kernel void image_filter(a, b, c, d)
{
    func1(a, b, c, d);
    if(<condition>)
        func2(a, b, c, d);
}
Run Code Online (Sandbox Code Playgroud)

现在我想修改内核,使其只能调用一次,同时执行水平和垂直传递.

kernel void image_filter(a, b, c, d)
{
    // Vertical pass
    func1(a, b, c, d);
    if(<condition>)
        func2(a, b, c, d);

    // When execution of the above functions is complete
    // Horizontal pass
    // Some computation
    func1(a, b, c, d);
    if(<condition>)
        func2(a, b, c, d);
}
Run Code Online (Sandbox Code Playgroud)

请注意,垂直和水平通道之间存在数据依赖性.

opencl

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

在 PyTorch 中就地添加多个张量

我可以像这样添加两个张量xy就地

x = x.add(y)
Run Code Online (Sandbox Code Playgroud)

鉴于所有张量都具有相同的维度,有没有办法对三个或更多张量做同样的事情?

pytorch tensor

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

更改AlexNet/GoogleNet/ImageNet的输出层?

我有一个关于更改网络输出层的问题(AlexNet/GoogleNet/ImageNet).因此标准输出是1x1000 Vector,因此每个类都有一个值.

我知道我可以将输出更改为例如5,所以如果我只有5个类,我会得到1x5 Vector.

但是如果我没有课程怎么办?是否可以将输出更改为18x18之类的矩阵.因为我的网应该输出密度图而不是"类".是否建议使用预先训练好的网络来完成我的任务,还是应该从头开始训练?

谢谢您的帮助 :-)

machine-learning computer-vision deep-learning caffe imagenet

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