gpt4 book ai didi

computer-vision - 在 train_val.prototxt 中使用 ImageData 类型字段时,GoogleNet 无法读取图像

转载 作者:行者123 更新时间:2023-12-04 07:20:22 31 4
gpt4 key购买 nike

我正在尝试使用 caffe 的 GoogleNet 实现。我想根据文本文件中的文件列表和标签来训练深度网络,但问题是,当我训练深度网络时,它无法读取文件。

这是 train_val.prototxt 定义,我使用 ImageData 而不是使用具有“数据”类型的大型 LMDB 文件

name: "GoogleNet"
layer
{
name: "data"
type: "ImageData"
top: "data"
top: "label"
include {
phase: TRAIN
}
transform_param
{
mirror: true
crop_size: 224
mean_value: 104
mean_value: 117
mean_value: 123
}
data_param
{
source: "path_to_file/file_paths_and_labels.txt"
batch_size: 32
}
}

这里我为 googlenet 使用了 ImageData 类型,而不是这里建议的类型 Data:LMDB files and how they are used for caffe deep learning network

所以,我有一个文本文件 (file_paths_and_labels.txt),其中每一行都包含以下内容:

path_to_image label

其中path to image是图片的地址,label是图片的标签(有10个不同的标签)。

我想知道我错在哪里,因为当我运行深度网络训练命令时

./build/tools/caffe train --solver=/my_home/dl-caffe/models/bvlc_googlenet/solver.prototxt 

我有以下错误:

I0624 10:36:11.524896 15246 layer_factory.hpp:74] Creating layer data
I0624 10:36:11.524960 15246 net.cpp:84] Creating Layer data
I0624 10:36:11.524988 15246 net.cpp:338] data -> data
I0624 10:36:11.525046 15246 net.cpp:338] data -> label
I0624 10:36:11.525084 15246 net.cpp:113] Setting up data
I0624 10:36:11.525106 15246 image_data_layer.cpp:36] Opening file
I0624 10:36:11.525146 15246 image_data_layer.cpp:51] A total of 0 images.
*** Aborted at 1435152971 (unix time) try "date -d @1435152971" if you are using GNU date ***
PC: @ 0x7f7060b70ee0 (unknown)
*** SIGSEGV (@0x0) received by PID 15246 (TID 0x7f706188aa40) from PID 0; stack trace: ***
@ 0x7f7060511d40 (unknown)
@ 0x7f7060b70ee0 (unknown)
@ 0x7f706118587c std::operator+<>()
@ 0x7f70611861e5 caffe::ImageDataLayer<>::DataLayerSetUp()
@ 0x7f7061144ac6 caffe::BaseDataLayer<>::LayerSetUp()
@ 0x7f7061144bc9 caffe::BasePrefetchingDataLayer<>::LayerSetUp()
@ 0x7f70611d8ff2 caffe::Net<>::Init()
@ 0x7f70611daab2 caffe::Net<>::Net()
@ 0x7f70611e6c10 caffe::Solver<>::InitTrainNet()
@ 0x7f70611e7d23 caffe::Solver<>::Init()
@ 0x7f70611e7ef6 caffe::Solver<>::Solver()
@ 0x40c4a0 caffe::GetSolver<>()
@ 0x406471 train()
@ 0x404a11 main
@ 0x7f70604fcec5 (unknown)
@ 0x404fbd (unknown)
Segmentation fault (core dumped)

我认为 GoogleNet 没有在我的文本文件中找到数据。问题是什么?我的 train_val.prototxt 文件的语法?

最佳答案

您使用错误的参数指定源。对于 IMAGE_DATA,您需要使用 image_data_param 而不是 data_param。因为您在 data_param 中指定了源,而 ImageDataLayer 查看 image_data_param,所以 source 的值是空字符串。您可以在此处的日志中看到:

I0624 10:36:11.525106 15246 image_data_layer.cpp:36] Opening file 

这一行的格式应该是:

Opening file <filename>

在您的日志中,“正在打开文件”后面有一个空白区域。

关于computer-vision - 在 train_val.prototxt 中使用 ImageData 类型字段时,GoogleNet 无法读取图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31028519/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com