【问题标题】:caffe always predicts the same resultcaffe 总是预测相同的结果
【发布时间】:2016-02-01 23:20:57
【问题描述】:

我用我自己的数据训练了我的网络,它不是图像而是向量(20×128×128)。 现在我想使用训练有素的网络进行预测。 但是,当我尝试代码时, 无论输入向量是什么,我都会得到相同的输出。 我将附上我用过的文件。 任何建议将不胜感激。

import cv2
import numpy as np
import os
import caffe
import lmdb
import leveldb
from caffe.proto import caffe_pb2

caffe_root = '../'
import sys
sys.path.insert(0, caffe_root + 'python')

def read_txt(file_path):
    X = np.empty((20,128,128),dtype=np.float)
    if os.path.exists(file_path) == False:
       return X
    f = open(file_path)
    lines2 = f.readlines()
    f.close()

    count = -1
    for line in lines2:
       count = count + 1
       i = count % 130
       k = count//130
       if i <= 127 and k<20:
           words = line.split(',')
           for j in range(0,128):
           X[k,i,j]=float(words[j])/500000

   return X

MODEL_FILE = '************/try_bn_deploy.prototxt'
PRETRAINED = '*********/bn__iter_20000.caffemodel'
base_path = '*************/database/txt/'

f = open('*****************/val.txt')
line = f.readline()
caffe.set_mode_cpu()
net = caffe.Net(MODEL_FILE, PRETRAINED,caffe.TEST)

count = 0
correct = 0
while line:
  count += 1

  # load feature vector
  pair = line.strip().split()
  image_path = pair[0]
  label = pair[1]
  X=np.empty((20,128,128),dtype=np.float)
  X[:,:,:] = read_txt(base_path + image_path)
  net.blobs['data'].data[...] = X
  # forcast
  out = net.forward()
  plabel = int(out['prob'][0].argmax())
  print count, label, plabel
  line = f.readline()
  f.close`

这是我的部署文件

  name: "Net"
  input: "data"
  input_shape {
     dim: 1
     dim: 20
     dim: 128
     dim: 128
  }
  ...
  layer {
     name: "prob"
     type: "Softmax"
     bottom: "fc8"
     top: "prob"
  }

【问题讨论】:

标签: caffe pycaffe


【解决方案1】:

当您调用net.forward() 时,它会将所有层替换为prototxt 指定的数据层,从而使您对net.blobs['data'].data[...] = X 的调用无效。要修复此运行:

net.forward(data=np.asarray(X))

这应该会给你正确的预测。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 1970-01-01
    • 2017-04-20
    • 2017-10-30
    • 2017-11-07
    • 1970-01-01
    相关资源
    最近更新 更多