新手试运行了一个 caffe 的 Python 代码,出现这个错误是怎么回事

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新手试运行了一个 caffe 的 Python 代码,出现这个错误是怎么回事相关的知识,希望对你有一定的参考价值。

参考技术A 完全的 caffe 新手,研究了一天的 caffe ,虽然糊里糊涂的, GitHub 上找了个项目: https://github.com/BestiVicto... 在网上找了个 Python 代码照猫画虎写成如下:

import numpy as np
import matplotlib.pyplot as plt
caffe_root = '/opt/caffe/'
import sys
sys.path.insert(0, caffe_root + 'python')
import caffe
MODEL_FILE = caffe_root + 'ILGnet/deploy.prototxt'
PRETRAINED = caffe_root + 'ILGnet/ILGnet-AVA2.caffemodel'
IMAGE_FILE = caffe_root+'examples/images/cat.jpg'
mean_file=caffe_root + 'ILGnet/AVA2_mean.npy'
caffe.set_mode_cpu()
net = caffe.Classifier(MODEL_FILE, PRETRAINED,
mean=np.load(mean_file).mean(1).mean(1),
channel_swap=(2,1,0),
raw_scale=255,
image_dims=(227, 227))
input_image = caffe.io.load_image(IMAGE_FILE)
plt.imshow(input_image)
prediction = net.predict([input_image])
plt.plot(prediction[0])
print 'predicted class:', prediction[0].argmax()
然后就出现: F0423 12:33:29.282009 172 insert_splits.cpp:35] Unknown bottom blob 'label' (layer 'loss1/loss', bottom index 1)
完全新手,估计代码错的很离谱,大家就别嘲笑了哈,想问一下这个如果 Python 实现的话该怎样写? 希望能得到解答,真诚谢谢~

ModuleNotFoundError:没有名为'caffe'的模块

我是python的新手...试图在Windows 10中的Python 3.6.8中运行一些代码当我执行以下代码时,我得到了ModuleNotFoundError:没有名为“ caffe”的模块错误

已安装

pip install caffe-ssd-x86

此后我遇到以下错误

Traceback (most recent call last):
  File "C:clean_water_ai-mastermycodecode.py", line 10, in <module>
    import caffe
  File "C:UsersElaAppDataLocalProgramsPythonPython36libsite-packagescaffe\__init__.py", line 1, in <module>
    from .pycaffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, RMSPropSolver, AdaDeltaSolver, AdamSolver
  File "C:UsersElaAppDataLocalProgramsPythonPython36libsite-packagescaffepycaffe.py", line 13, in <module>
    from ._caffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, 
ModuleNotFoundError: No module named 'caffe._caffe'

代码如下,分享您对解决此问题的意见

此代码是https://www.hackster.io/clean-water-ai/clean-water-ai-e40806#toc-step-4--collecting-data-for-ai-6中的净水AI代码应用程序的一部分>

import os
import glob
import random
import numpy as np
import cv2

import caffe
from caffe.proto import caffe_pb2
import lmdb
#Size of images
IMAGE_WIDTH = 227
IMAGE_HEIGHT = 227
def transform_img(img, img_width=IMAGE_WIDTH, img_height=IMAGE_HEIGHT):
   #Histogram Equalization
   img[:, :, 0] = cv2.equalizeHist(img[:, :, 0])
   img[:, :, 1] = cv2.equalizeHist(img[:, :, 1])
   img[:, :, 2] = cv2.equalizeHist(img[:, :, 2])
   #Image Resizing
   img = cv2.resize(img, (img_width, img_height), interpolation = cv2.INTER_CUBIC)
   return img
def make_datum(img, label):
   #image is numpy.ndarray format. BGR instead of RGB
   return caffe_pb2.Datum(
       channels=3,
       width=IMAGE_WIDTH,
       height=IMAGE_HEIGHT,
       label=label,
       data=np.rollaxis(img, 2).tostring())
train_lmdb = 'C:/clean_water_ai-master/mycode/face_training/input/train_lmdb'
validation_lmdb = 'C:/clean_water_ai-master/mycode/face_training/input/validation_lmdb'
os.system('rm -rf  ' + train_lmdb)
os.system('rm -rf  ' + validation_lmdb)
train_data = [img for img in glob.glob("../input/train/*jpg")]
test_data = [img for img in glob.glob("../input/test1/*jpg")]
#Shuffle train_data
random.shuffle(train_data)
print ('Creating train_lmdb')
in_db = lmdb.open(train_lmdb, map_size=int(1e12))
with in_db.begin(write=True) as in_txn:
   for in_idx, img_path in enumerate(train_data):
       if in_idx %  6 == 0:
           continue
       img = cv2.imread(img_path, cv2.IMREAD_COLOR)
       img = transform_img(img, img_width=IMAGE_WIDTH, img_height=IMAGE_HEIGHT)
       if 'yeast' in img_path:
           label = 0
       else:
           label = 1
       datum = make_datum(img, label)
       in_txn.put('{:0>5d}'.format(in_idx), datum.SerializeToString())
       print ('{:0>5d}'.format(in_idx) + ':' + img_path)
in_db.close()
print ('
Creating validation_lmdb')
in_db = lmdb.open(validation_lmdb, map_size=int(1e12))
with in_db.begin(write=True) as in_txn:
   for in_idx, img_path in enumerate(train_data):
       if in_idx % 6 != 0:
           continue
       img = cv2.imread(img_path, cv2.IMREAD_COLOR)
       img = transform_img(img, img_width=IMAGE_WIDTH, img_height=IMAGE_HEIGHT)
       if 'yeast' in img_path:
           label = 0
       else:
           label = 1
       datum = make_datum(img, label)
       in_txn.put('{:0>5d}'.format(in_idx), datum.SerializeToString())
       print ('{:0>5d}'.format(in_idx) + ':' + img_path)
in_db.close()
print ('
Finished processing all images')

我是python的新手...试图在Windows 10中的Python 3.6.8中运行某些代码,我执行以下代码,我得到了ModuleNotFoundError:没有名为'caffe'的模块错误,所以安装了pip install ...] >

答案

caffe模块不是Python标准发行版的一部分。您需要单独安装。大多数时候,您应该可以通过在终端中运行pip install caffe来执行此操作。希望对您有所帮助!

以上是关于新手试运行了一个 caffe 的 Python 代码,出现这个错误是怎么回事的主要内容,如果未能解决你的问题,请参考以下文章

ModuleNotFoundError:没有名为'caffe'的模块

Caffe & Caffe2入门博客存档

如何检查 Caffe 是不是正在使用我的 GPU?

Caffe入门与应用 by GX

Python3 - Docker部署caffe open_nsfw 图片鉴黄

Python3 - Docker部署caffe open_nsfw 图片鉴黄