标签: pycaffe

Python中导入的Spark问题

我们在python脚本上运行spark-submit命令,该脚本使用Spark在Python中使用Caffe并行化对象检测.如果在仅使用Python的脚本中运行,脚本本身运行完全正常,但在将其与Spark代码一起使用时会返回导入错误.我知道火花代码不是问题,因为它在我的家用机器上运行得非常好,但它在AWS上运行不正常.我不确定这是否与环境变量有关,就好像它没有检测到它们一样.

设置这些环境变量:

SPARK_HOME=/opt/spark/spark-2.0.0-bin-hadoop2.7
PATH=$SPARK_HOME/bin:$PATH
PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH
PYTHONPATH=/opt/caffe/python:${PYTHONPATH}
Run Code Online (Sandbox Code Playgroud)

错误:

16/10/03 01:36:21 WARN TaskSetManager: Lost task 0.0 in stage 0.0 (TID 0, 172.31.50.167): org.apache.spark.api.python.PythonException: Traceback (most recent call last):
 File "/opt/spark/spark-2.0.0-bin-hadoop2.7/python/lib/pyspark.zip/pyspark/worker.py", line 161, in main
   func, profiler, deserializer, serializer = read_command(pickleSer, infile)
 File "/opt/spark/spark-2.0.0-bin-hadoop2.7/python/lib/pyspark.zip/pyspark/worker.py", line 54, in read_command
   command = serializer._read_with_length(file)
 File "/opt/spark/spark-2.0.0-bin-hadoop2.7/python/lib/pyspark.zip/pyspark/serializers.py", line 164, in _read_with_length
   return self.loads(obj)
 File "/opt/spark/spark-2.0.0-bin-hadoop2.7/python/lib/pyspark.zip/pyspark/serializers.py", line 422, in loads
   return pickle.loads(obj)
 File "/opt/spark/spark-2.0.0-bin-hadoop2.7/python/lib/pyspark.zip/pyspark/cloudpickle.py", line 664, in subimport
   __import__(name)
ImportError: ('No module named caffe', <function subimport at 0x7efc34a68b90>, …
Run Code Online (Sandbox Code Playgroud)

python apache-spark caffe pyspark pycaffe

8
推荐指数
1
解决办法
992
查看次数

Caffe中的多个预训练网络

是否有一种简单的方法(例如,不修改代码)将多个预训练网络的重量加载到一个网络中?该网络包含一些与预训练网络具有相同尺寸和名称的图层.

我试图用NVidia DIGITS和Caffe实现这一目标.

编辑:我认为不可能直接从DIGITS这样做,正如答案所证实的那样.任何人都可以建议一种简单的方法来修改DIGITS代码,以便能够选择多个预训练网络吗?我检查了一下代码,并认为训练脚本是一个很好的起点,但我对Caffe没有深入的了解,所以我不确定实现这个目标的最佳/最快方法是什么.

deep-learning caffe conv-neural-network pycaffe nvidia-digits

7
推荐指数
1
解决办法
1302
查看次数

深度学习 - 关于咖啡的一些天真的问题

我试图了解caffe的基础知识,特别是与python一起使用.

我的理解是模型定义(比如给定的神经网络架构)必须包含在'.prototxt'文件中.

当您使用数据训练模型时'.prototxt',将权重/模型参数保存到'.caffemodel'文件中

此外,'.prototxt'用于培训的文件(包括学习速率和正则化参数)与用于测试/部署的文件(不包括它们)之间存在差异.

问题:

  1. 使用训练数据是否是'.prototxt'训练的基础并且'.caffemodel'是训练(重量)的结果 是正确的'.prototxt'吗?
  2. 是否正确的是有'.prototxt'训练和一个用于测试,并且只有轻微的差异(学习率和训练的正规化因素),但nn架构(假设你使用神经网络)是相同的?

为这些基本问题道歉,可能还有一些非常不正确的假设,我正在做一些在线研究,上面的几行总结了我迄今为止的理解.

python neural-network deep-learning caffe pycaffe

7
推荐指数
1
解决办法
1360
查看次数

例外:在mac上的python中找不到路径中的"点"

我想用caffe.drawmac在anaconda python上绘制caffe网.但是我得到了这样的错误:

File "python/draw_net.py", line 45, in <module>
    main()
  File "python/draw_net.py", line 41, in main
    caffe.draw.draw_net_to_file(net, args.output_image_file, args.rankdir)
  File "/Users/xxh/caffe/distribute/python/caffe/draw.py", line 222, in draw_net_to_file
    fid.write(draw_net(caffe_net, rankdir, ext))
  File "/Users/xxh/caffe/distribute/python/caffe/draw.py", line 204, in draw_net
    return get_pydot_graph(caffe_net, rankdir).create(format=ext)
  File "/Users/xxh/anaconda2/lib/python2.7/site-packages/pydot.py", line 1883, in create
    prog=prog))
Exception: "dot" not found in path.
Run Code Online (Sandbox Code Playgroud)

我已经安装了pydot和graphviz,我怎样才能将dot的路径添加到python路径?

python macos path pycaffe

7
推荐指数
4
解决办法
8162
查看次数

RMSprop,Adam,AdaDelta使用Caffe测试精度并没有提高

我正在finetuning使用a Caffe上的图像数据集Tesla K40.使用batch size=47,solver_type=SGD,base_lr=0.001,lr_policy="step",momentum=0.9,gamma=0.1,的training loss下降,test accuracy从去2%-50%100迭代这是相当不错的.

当使用其他优化器,例如RMSPROP,ADAMADADELTA,余数training loss几乎相同,并且test accuracy1000迭代后没有任何改进.

因为RMSPROP,我已经改变了这里提到的各个参数.

因为ADAM,我已经改变了这里提到的各个参数

因为ADADELTA,我已经改变了这里提到的各个参数

有人可以告诉我我做错了什么吗?

machine-learning computer-vision deep-learning caffe pycaffe

6
推荐指数
1
解决办法
4426
查看次数

如何将数据附加到现有的LMDB?

我有大约100万张图像放在这个数据集10000中,一次附加到集合中.

我确定map_size与本文的参考文献有关

使用此行创建集合

env = lmdb.open(Path+'mylmdb', map_size=int(1e12)
Run Code Online (Sandbox Code Playgroud)

每10000个样本使用此行将数据写入文件,其中X和Y是要放入LMDB的数据的占位符.

env = create(env, X[:counter,:,:,:],Y,counter)


def create(env, X,Y,N):
    with env.begin(write=True) as txn:
        # txn is a Transaction object
        for i in range(N):
            datum = caffe.proto.caffe_pb2.Datum()
            datum.channels = X.shape[1]
            datum.height = X.shape[2]
            datum.width = X.shape[3]
            datum.data = X[i].tostring()  # or .tostring() if numpy < 1.9
            datum.label = int(Y[i])
            str_id = '{:08}'.format(i)

            # The encode is only essential in Python 3
            txn.put(str_id.encode('ascii'), datum.SerializeToString())
        #pdb.set_trace()
    return env
Run Code Online (Sandbox Code Playgroud)

如何编辑此代码,以便将新数据添加到此LMDB而不替换,因为此方法将其替换为相同位置.我用env.stat()检查了生成后的长度.

python machine-learning lmdb caffe pycaffe

6
推荐指数
1
解决办法
2872
查看次数

如何使用pycaffe重建caffe网

我想要的是,在加载网后,我将分解某些图层并保存新网.例如

原始网:

data - > conv1 - > conv2 - > fc1 - > fc2 - > softmax;

新网:

data - > conv1_1 - > conv1_2 - > conv2_1 - > conv2_2 - > fc1 - > fc2 - > softmax

因此,在此过程中,我陷入了以下情况:
1.如何使用指定的图层参数新建某个图层pycaffe
2.如何层参数从现有层(诸如复制fc1fc2以上)?

我知道通过使用caffe::net_spec,我们可以手动定义一个新的网络.但是caffe::net_spec无法从现有层指定层(例如:) fc1.

python neural-network deep-learning caffe pycaffe

6
推荐指数
1
解决办法
3350
查看次数

在 Python 中没有安装 caffe 的情况下从 .caffemodel 中提取权重

是否有一种相对简单的方法可以从没有 CAFFE(也没有 pyCaffe)的Caffe Zoo 中的众多预训练模型之一中提取 Python 中的权重?即解析.caffemodel为 hdf5/numpy 或 Python 可以读取的任何格式?

我找到的所有答案都使用带有 caffe 类或 Pycaffe 的 C++ 代码。我看过pycaffe的代码,看起来你真的需要caffe来理解二进制文件是唯一的解决方案吗?

python neural-network deep-learning caffe pycaffe

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

camax中的Softmax和SoftmaxWithLoss层有什么区别?

prototxt在caffe中定义时,我发现有时我们使用Softmax最后一层的类型,有时我们使用SoftmaxWithLoss,我知道Softmax图层将返回输入数据属于每个类的概率,但似乎SoftmaxwithLoss也会返回类概率,那么是什么他们之间的区别?还是我误解了两种图层类型的用法?

deep-learning caffe pycaffe softmax

6
推荐指数
1
解决办法
3039
查看次数

如何修改Imagenet Caffe模型?

我想修改ImageNet caffe模型,如下所述:

由于时间网络的输入通道编号与空间网络的输入通道编号不同(20对3),我们对通道中第一层的ImageNet模型滤波器求平均值,然后将平均结果复制20次作为时间网络的初始化.

我的问题是如何才能实现上述结果?如何打开caffe模型才能对其进行更改?

我阅读了网络手术教程,但它没有涵盖所需的程序.

谢谢您的帮助!

AMayer

deep-learning caffe pycaffe

6
推荐指数
1
解决办法
2307
查看次数