pythonleveldb
A. Caffe训练自己的imagenet,ubuntu提示killed
1、准备数据。
假设已经下载好数据集和验证集,存储路径为:
/path/to/imagenet/train/n01440764/n01440764_10026.JPEG
/path/to/imagenet/val/ILSVRC2012_val_00000001.JPEG
首选需要创建一个txt文件,列举出所有图像以及对应的lable,caffe包“python/caffe/imagenet/ilsvrc_2012_train.txt”和“ilsvrc_2012_val.txt”两个文件分别是标好的训练集和验证集的文件,共分为1000类。
还需要注意的是,所有的图像都需要归一到同样的尺寸。
2、转化生成训练集。
运行下面的命令:
GLOG_logtostderr=1 examples/convert_imageset.bin /path/to/imagenet/train/ python/caffe/imagenet/ilsvrc_2012_train.txt /path/to/imagenet-train-leveldb
生成文件存储在“/path/to/imagenet-train_leveldb”路径下。
3、计算图像均值。
执行命令:
examples/demo_compute_image_mean.bin /path/to/imagenet-train-leveldb /path/to/mean.binaryproto
第一个参数是执行脚本代码,第二个参数是上一步生成的数据集,第三个参数是存储图像均值的目录路径。
4、定义网络。
ImageNet的网络定义在“examples/imagenet.prototxt”文件中,使用时需要修改里面source和meanfile变量的值,指向自己文件的路径。
仔细观察imagenet.prototxt和imagenet_val.prototxt文件可以发现,训练和验证的参数大部分都相同,不同之处在于初始层和最后一层。训练时,使用softmax_loss层来计算损失函数和初始化后向传播,验证时,使用accuracy层来预测精确度。
在文件“examples/imagenet_solver.prototxt”中定义solver协议,同样需要修改train_net和test_net的路径。
5、训练网络。
执行命令:
GLOG_logtostderr=1 examples/train_net.bin examples/imagenet_solver.prototxt
6、在python中使用已经训练好的模型。
Caffe只提供封装好的imagenet模型,给定一副图像,直接计算出图像的特征和进行预测。首先需要下载模型文件。
Python代码如下:
[python] view plain print?
from caffe import imagenet
from matplotlib import pyplot
# Set the right path to your model file, pretrained model
# and the image you would like to classify.
MODEL_FILE = 'examples/imagenet_deploy.prototxt'
PRETRAINED = '/home/jiayq/Downloads/caffe_reference_imagenet_model’
IMAGE_FILE = '/home/jiayq/lena.png'
net = imagenet.ImageNetClassifier(MODEL_FILE, PRETRAINED)
#预测
prediction = net.predict(IMAGE_FILE)
#绘制预测图像
print 'prediction shape:', prediction.shape
pyplot.plot(prediction)
prediction shape: (1000,)
[<matplotlib.lines.Line2D at 0x8faf4d0>] #结果如图所示
图上的横轴表示的label,纵轴表示在该类别上的概率,有图我们看到,lena.jpg被分到了”sombrero”这组,结果还算准确。
B. python 大牛 用什么web框架
Pyramid, Django, 和 Flask都是优秀的框架,为项目选择其中的哪一个都是伤脑筋的事。我们将会用三种框架实现相同功能的应用来更容易的对比三者。也可以直接跳到框架实战
简介
Flask是一个面向简单需求小型应用的“微框架(microframework)”。Pyramid和Django都是面向大型应用的,但是有不同的拓展性和灵活性。Pyramid的目的是更灵活,能够让开发者为项目选择合适的工具。这意味着开发者能够选择数据库、URL结构、模板类型等等。Django目的是囊括web应用的所有内容,所以开发者只需要打开箱子开始工作,将Django的模块拉进箱子中。
Django包括一个开箱即用的 ORM ,而Pyramid和 Flask让开发者自己选择如何或者是否存储他们的数据。到目前为止对于非Django的web应用来说最流行的ORM是SQLAlchemy,同时还有多种其他选择,从 DynamoDB和MongoDB 到简单本地存储的LevelDB 或朴实的SQLite。Pyramid被设计为可使用任何数据持久层,甚至是还没有开发出来的。
关于框架
Django已经内建了模板、表单、路由、认证、基本数据库管理等等。比较起来,Pyramid包括路由和认证,但是模板和数据库管理需要额外的库。
Flask历史相对更短,但它能够学习之前出现的框架并且把注意力放在了微小项目上。它大多数情况被使用在一些只有一两个功能的小型项目上。例如 httpbin,一个简单的(但很强大的)调试和测试HTTP库的项目。
Flask
Flask的hello world应用非常的简单,仅仅单个Python文件的7行代码就够了。
Django
Django 也有自己的 bootstrap 工具, 内置在 django-admin 中.
Django 默认只在项目中创建 空白的 model 和模板文件, 供新手参考的示范代码不多
模板
1、Django
C. 求问大神们,windows下应该怎么安装python的依赖库h5py,leveldb等
leveldb 需要从googlecode上下载源码,然后编译
D. python 怎么安装leveldb
安装Python包,的确是pip最为方便了,简单快捷,因为它直接是从pypi上面下载文件,保证文件的安全性和可靠性,并且资源丰富;下面是安装步骤:
下载 setuptools,注意对应 Python 的版本,完成后运行 exe 即可完成安装
setuptools-1.4.1.win32-py2.6.exe
下载 pip
pip-1.4.1.tar.gz
安装 pip
3.1 解压pip-1.4.1.tar.gz
3.2 运行CMD,进入命令行
3.3 用CD命令进入 pip 解压目录
3.4 输入 "python setup.py install"
3.5 添加环境变量 path = C:Python26ArcGIS10.0Scripts
验证是否安装成功,运行CMD,进入命令行,输入pip;
如果出现pip的用法介绍,说明安装成功。
进入命令行,输入 "pip install package",package为安装包名称,就可以随意使用了;
如果pip安装不成功的话,建议去PYPI上下载文件,然后自行安装。
E. python 爬虫 ip池怎么做
无论是爬取IP,都能在本地设计动态代理IP池。这样既方便使用,又可以提升工作效率。那么怎么在本地设计一个代理IP池呢?IPIDEA为大家简述本地代理IP池的设计和日常维护。
代理IP获取接口,如果是普通代理IP,使用ProxyGetter接口,从代理源网站抓取最新代理IP;如果是需耗费代理IP,一般都有提供获取IP的API,会有一定的限制,比如每次提取多少个,提取间隔多少秒。
代理IP数据库,用以存放在动态VPS上获取到的代理IP,建议选择SSDB。SSDB的性能很突出,与Redis基本相当了,Redis是内存型,容量问题是弱项,并且内存成本太高,SSDB针对这个弱点,使用硬盘存储,使用Google高性能的存储引擎LevelDB,适合大数据量处理并把性能优化到Redis级别。
代理IP检验计划,代理IP具备时效性,过有效期就会失效,因此 需要去检验有效性。设置一个定时检验计划,检验代理IP有效性,删除无效IP、高延时IP,同时预警,当IP池里的IP少于某个阈值时,根据代理IP获取接口获取新的IP。
代理IP池外部接口除代理拨号服务器获取的代理IP池,还需要设计一个外部接口,通过这个接口调用IP池里的IP给爬虫使用。代理IP池功能比较简单,使用Flask就可以搞定。功能可以是给爬虫提供get/delete/refresh等接口,方便爬虫直接使用。
F. win7配置caffe,import caffe时提示No mole named caffe
这种情况一般是没有把caffe中的和python相关的内容的路径添加到python的编译路径中。
G. 想学爬虫就一定要学Python吗
学python不一定要学爬虫。python的应用范围很广泛,如软件开发、科学计算、自动化运维、云计算、web开发、网络爬虫、人工智能等。爬虫不仅仅可以用python写,很多语言都可以实现爬虫。例C,C++、C#、Perl、 Python、Java、 Ruby都可以写爬虫,原理其实相差不大,只不过是平台问题。网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。
传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件;爬虫主要的工作就是根据一定的规则去抓取网络上我们想要的数据的程序,这里大家要注意的是爬虫不一定非要使用Python才可以实现的,使用JavaScript、Java等语言都是可以实现的。千锋教育拥有多年Python培训服务经验,采用全程面授高品质、高体验培养模式,拥有国内一体化教学管理及学员服务,助力更多学员实现高薪梦想。
H. 如何在Windows下安装配置python接口的caffe
整了一晚上加一上午。网上关于python的记录较少,这里写一下。
这里的环境是WIN10+cuda v7.5 +cudnn v4 + opencv + pycharm+VS2013
使用的是GPU,我的GPU是titan16G+内存32G
首先是caffe的文件以及第三方库的编译,这里提供一个已经编译好的的连接,我就是从那里下好然后编译完毕的。
点击打开链接 happynear的
然后就是如何编译python接口。
1、首先先生成两个python文件,在src/caffe/proto/extract_proto.bat 里生成caffe_pb2.py 这个之后有用。
2、然后打开已经给好的caffe/buildVS2013,打开里面已经有的工程文件,正常的情况下应该是有7个工程,选中pycaffee单独作为要编译的项目。如图所示:
把pycaffe作为单启动。注意需要在release x64位下编译。
如果没有这个的话,就将这个文件夹里python文件夹中的项目加入即可。如果没有python项目,就自己建一个,将python文件夹里的cpp文件加入就可以了。
3、选择pycaffe的属性,将配置属性下的VC++目录中的包含目录和库目录填上你python所在的include和libs 再在C/C++的目录下的附加包含目录一项中添加
以我的python为例。D:/python27/Lib;D:/python/include/ 以及D:/Python27/Lib/site-packages/numpy/core/include 如果你安装了CUDNN这里可以在预处理器那里把USE_CUDNN加上,同时在LINKER的输入目录下的附加依赖库中加入cudnn的lib文件。
3、开始编译即可。这里要注意一定要和caffe、caffelib在一个项目里编译,否则会报错。
4、编译成功后会在caffe/python/caffe下生成_caffe.pyd 是打不开的
5、配置python环境:需要几个额外库
Cython>=0.19.2
numpy>=1.7.1
scipy>=0.13.2
scikit-image>=0.9.3
matplotlib>=1.3.1
ipython>=3.0.0
h5py>=2.2.0
leveldb>=0.191
networkx>=1.8.1
nose>=1.3.0
pandas>=0.12.0
python-dateutil>=1.4,<2
protobuf>=2.5.0
python-gflags>=2.0
pyyaml>=3.10
Pillow>=2.3.0
six>=1.1.0
其中numpy要装MKL版本的,不然scipy装上了BLAS不能用
leveldb没有windows版本的,不过我找到了可以使用的办法。见这个博客:
点击打开链接
如果有pip install 装不上的,可以上这个网站找 wheel文件安装就可以了
点击打开链接
6、最后把目录中python下的caffe文件夹复制到python27/Lib/site-packages就可以了。
测试的时候只需要在控制台下输入import caffe 看能载入就知道成功了:)