小编mcE*_*nge的帖子

caffe中预训练imagenet模型的对象类别

我正在使用沿caffe(CNN)库('bvlc_reference_caffenet.caffemodel')提供的预训练imagenet模型.我可以使用此模型为任何图像输出1000暗淡的对象分数向量.
但是我不知道实际的对象类别是什么.有人找到了一个文件,列出了相应的对象类别吗?

machine-learning neural-network deep-learning caffe matcaffe

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

用颜色显示的单通道 png

我正在检查pascal voc 2012 dataset 的真实分割掩码。这些是单通道 8 位 uint png 文件。但是,当我在文件浏览器 (nautilus) 或图像查看器 (eog) 中打开这些图像时,它们会以颜色显示。
不应该以灰度显示吗?
当我使用 Matlab 将图像存储为单通道 8 位 uint png 文件时,它按预期以灰度显示。不同类型的 png 文件有什么区别?
我如何存储它以便我的图像查看器以颜色显示它们?

这是原始的单通道 png:
这是原始的单通道 png

这是之后的结果imreadimwrite。请注意,没有添加/删除频道:
这是 <code>imread</code> 和 <code>imwrite</code> 没有添加/删除通道后的结果

matlab png

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

Pytorch:训练期间的中间测试

如何在训练期间在验证数据上测试我的 pytorch 模型?我知道有一个函数myNet.eval()可以明显地切换任何 dropout 层,但它是否也阻止了梯度的累积?
另外,我将如何撤消myNet.eval()命令以继续进行培训?

如果有人有一些代码片段/玩具示例,我将不胜感激!

pytorch

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

Caffe的train.prototxt中平均值的顺序是多少?

在我的Caffe中,'train.prototxt'我正在进行一些输入数据转换,如下所示:

  transform_param {
    mirror: true
    crop_size: 321
    mean_value: 104 # Red ?
    mean_value: 116 # Blue ? 
    mean_value: 122 # Green ? 
  }
Run Code Online (Sandbox Code Playgroud)

现在我想存储输入图像的修改版本,以便将某些图像区域设置为这些平均值.理性的是,在平均减法期间将那些区域设置为0.但是我不知道caffe在这样的prototxt文件中期望的通道顺序是什么,我也无法在caffe代码中查找它.
现在有人确定上面给出的3个值是RGB还是BGR顺序?

(我不确定因为caffe在内部使用opencv,它以不寻常的BGR格式存储图像)

machine-learning computer-vision neural-network deep-learning caffe

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

在python中读取具有混合数据类型的未知大小的二进制文件

我需要读取二进制文件,该文件由19个float32数字组成,后跟一个未知数量的uint32数字。我如何在python中读取这样的文件?

在Matlab中,等效项如下所示:

fid = fopen('myFile.bin','r');
params = fread(fid,19,'float');
data = fread(fid,'uint32');
fclose(fid);
Run Code Online (Sandbox Code Playgroud)

python

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

Pytorch:如何计算用于语义分割的 IoU(Jaccard 指数)

有人可以提供一个关于如何在 pytorch 中为语义分割计算 IoU(联合交叉)的玩具示例吗?

pytorch

4
推荐指数
3
解决办法
2万
查看次数

网络手术:如何重塑caffe中caffemodel文件的卷积层?

我正在尝试重塑caffemodel的卷积层的大小(这是这个问题的后续问题).虽然有一个关于如何进行网络手术的教程,但它只展示了如何将体重参数从一个caffemodel复制到另一个相同大小的caffemodel.
相反,我需要在我的卷积滤镜中添加一个新通道(全0),以便将其大小从当前(64x 3x 3x 3)更改为(64x 4x 3x 3).

假设卷积层被调用'conv1'.这是我到目前为止所尝试的:

# Load the original network and extract the fully connected layers' parameters.
net = caffe.Net('../models/train.prototxt', 
                '../models/train.caffemodel', 
                caffe.TRAIN)
Run Code Online (Sandbox Code Playgroud)

现在我可以执行此操作:

net.blobs['conv1'].reshape(64,4,3,3);
net.save('myNewTrainModel.caffemodel');
Run Code Online (Sandbox Code Playgroud)

但保存的模型似乎没有改变.我已经读过卷积的实际权重存储而net.params['conv1'][0].data不是存在,net.blobs但我无法弄清楚如何重塑net.params对象.有没有人有想法?

machine-learning neural-network deep-learning caffe pycaffe

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

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

Pytorch:向模型添加输入归一化(划分层)

我想将图像标准化添加到现有的 pytorch 模型中,这样我就不必再标准化输入图像了。

假设我有一个现有模型

model = torch.hub.load('pytorch/vision:v0.6.0', 'mobilenet_v2', pretrained=True)
model.eval()
Run Code Online (Sandbox Code Playgroud)

现在我可以使用 torch.nn.Sequential 添加新层(例如 relu):

new_model = nn.Sequential(
    model,
    nn.ReLU()
)
Run Code Online (Sandbox Code Playgroud)

然而,我找不到一个层来根据 numpy 中所示的输入标准化所需执行除法或减法:

import cv2
import numpy as np
img = cv2.imread("my_img.jpg")
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img = img.astype(np.float32)
mean = np.array([0.485, 0.456, 0.406], dtype=np.float32)
std = np.array([0.229, 0.224, 0.225], dtype=np.float32)
img = img / 255.0
img = img - mean
img = img / std
img = np.transpose(img, (2, 0, 1))
img = np.expand_dims(img, axis=0)
Run Code Online (Sandbox Code Playgroud)

目标是归一化最终在 GPU 上完成,以节省推理过程中的时间。另外,我无法使用 torchvision …

pytorch

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

在 gnuplot 中更改 x 值

我正在绘制一列数据,表示 gnuplot 中的时间序列。每个值代表 500 次迭代/时间单位后的时间值。我可以告诉 gnuplot 将它显示的 x 值乘以 500 吗?

我认为这将是一个标准问题,因为每次必须绘制时间序列时,都需要告诉绘图程序每次迭代具有的时间单位。

我不想手动创建带有 x 值的额外列,因为我有很多不同长度的不同数据。我不想为每个人创建 ax 列。

gnuplot

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

从python中的文件中读取文件名

我正在使用ascii文件读取文件名

with open('FilenamesAsciiFile.txt') as f:
    content = f.readlines()
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我尝试打开文件或检查它是否存在时,我收到一个错误:

filename = content[0]
print filename
print type(filename)

--> myFile.h5
--> <type 'str'>


import os.path
os.path.isfile(filename)

--> False
Run Code Online (Sandbox Code Playgroud)

当我对字符串进行硬编码时,一切正常

os.path.isfile('myFile.h5')

--> True
Run Code Online (Sandbox Code Playgroud)

字符串是该函数的错误输入类型吗?

python

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

Python:如何从numpy数组写入单个通道png文件?

我想从python中的numpy数组中写入一个单通道png图像?在Matlab中

A = randi(100,100,255)
imwrite(uint8(A),'myFilename.png','png');
Run Code Online (Sandbox Code Playgroud)

我看到了使用的pelpels from PIL import ImageImage.fromarray()但是它们仅用于jpeg和3通道png。

我已经使用opencv找到了解决方案,我将在这里发布。希望它将缩短其他人的搜索...

python opencv

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