Long-term Recurrent Convolutional Networks belgesini çoğaltmaya çalışıyorum.Lazanyaya önceden hazırlanmış bir caffe modeli mi yüklüyor?
theano
'da kullanmak istediğim önceden hazırlanmış bir caffe modelim var. Bu dosya için .caffemodel
ve prototxt
var. Caffe ağırlıklarını caffe modeline yüklemek için lasagne example'u kullandım. Bu code I used, ancak veriler lazanya modeline yüklenmemiş. Bu hatayı atan lasagne.layers.get_all_param_values(net)
komutunu kullanarak denetleyin.
Traceback (most recent call last):
File "/home/anilil/projects/pycharm-community-5.0.4/helpers/pydev/pydevd.py", line 2411, in <module>
globals = debugger.run(setup['file'], None, None, is_module)
File "/home/anilil/projects/pycharm-community-5.0.4/helpers/pydev/pydevd.py", line 1802, in run
launch(file, globals, locals) # execute the script
File "/media/anilil/Data/charm/mv_clean/Vgg_las.py", line 218, in <module>
x=lasagne.layers.get_all_param_values(net)
File "/usr/local/lib/python2.7/dist-packages/lasagne/layers/helper.py", line 439, in get_all_param_values
params = get_all_params(layer, **tags)
File "/usr/local/lib/python2.7/dist-packages/lasagne/layers/helper.py", line 353, in get_all_params
return utils.unique(params)
File "/usr/local/lib/python2.7/dist-packages/lasagne/utils.py", line 157, in unique
for el in l:
File "/usr/local/lib/python2.7/dist-packages/lasagne/layers/helper.py", line 352, in <genexpr>
params = chain.from_iterable(l.get_params(**tags) for l in layers)
AttributeError: 'str' object has no attribute 'get_params'
DENEME/Test Kodu: -
# -*- coding: utf-8 -*-
import os
import sys
import lasagne
from lasagne.layers import InputLayer
from lasagne.layers import DenseLayer
from lasagne.layers import NonlinearityLayer
from lasagne.nonlinearities import rectify
from lasagne.layers import DropoutLayer
from lasagne.layers import Pool2DLayer as PoolLayer
from lasagne.layers.dnn import Conv2DDNNLayer as ConvLayer
from lasagne.nonlinearities import softmax
import theano as T
from lasagne.layers import LocalResponseNormalization2DLayer as LRN
sys.path.append('/home/anilil/projects/lstm/lisa-caffe-public/python/')
import caffe
from lasagne.utils import floatX
import numpy as np
def build_model():
net = {}
# Input layer
net['input'] = InputLayer((None, 3, 227, 227))
# First Conv Layer
net['conv1'] = ConvLayer(net['input'], num_filters=96,filter_size=7, pad=0, flip_filters=False,stride=2,nonlinearity=rectify)
net['pool1'] = PoolLayer(net['conv1'], pool_size=3,stride=2,mode='max')
net['norm1'] = LRN(net['pool1'],alpha=0.0001,beta=0.75,n=5)
# 2nd Conv Layer
net['conv2'] = ConvLayer(net['norm1'], num_filters=384,filter_size=5, pad=0, flip_filters=False,stride=2,nonlinearity=rectify)
net['pool2'] = PoolLayer(net['conv2'], pool_size=3,stride=2,mode='max')
net['norm2'] = LRN(net['pool2'],alpha=0.0001,beta=0.75,n=5)
# 3rd Conv Layer
net['conv3'] = ConvLayer(net['norm2'], num_filters=512,filter_size=3, pad=1, flip_filters=False,nonlinearity=rectify)
net['conv4'] = ConvLayer(net['conv3'], num_filters=512,filter_size=3, pad=1, flip_filters=False,nonlinearity=rectify)
net['conv5'] = ConvLayer(net['conv4'], num_filters=384,filter_size=3, pad=1, flip_filters=False,nonlinearity=rectify)
net['pool5'] = PoolLayer(net['conv5'], pool_size=3,stride=2,mode='max')
net['fc6'] = DenseLayer(net['pool5'], num_units=4096,nonlinearity=rectify)
net['fc6_dropout'] = DropoutLayer(net['fc6'], p=0.5)
net['fc7'] = DenseLayer(net['fc6_dropout'], num_units=4096)
net['fc7_dropout'] = DropoutLayer(net['fc7'], p=0.5)
net['fc8-ucf'] = DenseLayer(net['fc7_dropout'], num_units=101, nonlinearity=None)
net['prob'] = NonlinearityLayer(net['fc8-ucf'], softmax)
return net
if __name__=="__main__":
net = build_model()
#net= load_caffe_weights(net,'/home/anilil/projects/lstm/lisa-caffe-public/examples/LRCN_activity_recognition/deploy_singleFrame.prototxt','/home/anilil/projects/lstm/lisa-caffe-public/examples/LRCN_activity_recognition/singleframe_flow/snaps/snapshots_singleFrame_flow_v2_iter_50000.caffemodel')
caffe.set_device(0)
caffe.set_mode_gpu()
net_caffe = caffe.Net('/home/anilil/projects/lstm/lisa-caffe-public/examples/LRCN_activity_recognition/deploy_singleFrame.prototxt', '/home/anilil/projects/lstm/lisa-caffe-public/examples/LRCN_activity_recognition/singleframe_flow/snaps/snapshots_singleFrame_flow_v2_iter_50000.caffemodel', caffe.TEST)
layers_caffe = dict(zip(list(net_caffe._layer_names), net_caffe.layers))
for name, layer in net.items():
try:
layer.W.set_value(layers_caffe[name].blobs[0].data,borrow=True)
layer.b.set_value(layers_caffe[name].blobs[1].data,borrow=True)
except AttributeError:
continue
print ("Loaded the files without issues !!!!!!!!!!")
x=lasagne.layers.get_all_param_values(net)
print ("Saved Weights to the file without issues !!!!!!!!!!")
Kodunuzu sorgunun kendisine dahil etmelisiniz. [Minimal, Tam ve Doğrulanabilir örnek oluşturma] konusuna bakın. (Http://stackoverflow.com/help/mcve) –