खोज…


टिप्पणियों

Caffe, C ++ में लिखी गई एक लाइब्रेरी है, जिसमें कन्वर्सेशनल न्यूरल नेटवर्क्स (CNN) के प्रयोग और उपयोग की सुविधा है। कैफ को बर्कले विजन एंड लर्निंग सेंटर (बीवीएलसी) द्वारा विकसित किया गया है।

कैफ वास्तव में "फास्ट फ़ीचर एक्सट्रैक्शन के लिए कन्वेंशनल आर्किटेक्चर" का उल्लेख करने वाला एक संक्षिप्त नाम है। यह ब्रीफकेस पुस्तकालय के एक महत्वपूर्ण दायरे को घेरता है। एक पुस्तकालय के रूप में कैफ एक सामान्य प्रोग्रामिंग ढांचा / वास्तुकला प्रदान करता है जिसका उपयोग सीएनएन के कुशल प्रशिक्षण और परीक्षण करने के लिए किया जा सकता है। "दक्षता" कैफ की एक प्रमुख पहचान है, और कैफ के प्रमुख डिजाइन उद्देश्य के रूप में है।

कैफ बीएसडी 2 क्लॉज लाइसेंस के तहत जारी एक ओपन-सोर्स लाइब्रेरी है

GitHub पर कैफ बनाए रखा जाता है

कैफ का उपयोग किया जा सकता है:

  • कुशल रूप से कई CNN आर्किटेक्चर को प्रशिक्षित और परीक्षण करना, विशेष रूप से किसी भी वास्तुकला को निर्देशित चक्रीय ग्राफ (DAG) के रूप में दर्शाया जा सकता है।
  • प्रशिक्षण और परीक्षण के लिए कई GPU (4 तक) का उपयोग करें। यह अनुशंसा की जाती है कि सभी GPU एक ही प्रकार के हों। अन्यथा, प्रदर्शन सिस्टम में सबसे धीमे GPU की सीमा तक सीमित है। उदाहरण के लिए, टाइटनएक्स और जीटीएक्स 980 के मामले में, प्रदर्शन बाद के द्वारा सीमित होगा। कई आर्किटेक्चर को मिलाना समर्थित नहीं है, जैसे केपलर और फर्मी 3

कैफ को कुशल ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग (ओओपी) सिद्धांतों के बाद लिखा गया है।

कैफ के लिए एक परिचय शुरू करने के लिए एक अच्छा प्रारंभिक बिंदु यह है कि पक्षी अपने मूलभूत वस्तुओं के माध्यम से कैसे काम करता है, इस बारे में एक पक्षी की आंखें देखें।

संस्करण

संस्करण रिलीज़ की तारीख
1.0 2017/04/19

स्थापना और सेटअप

उबंटू

नीचे उबंटू 14.04 x64 या 14.10 x64 पर, कैफ, पाइकाफ के साथ-साथ इसकी निर्भरता को स्थापित करने के लिए विस्तृत निर्देश दिए गए हैं।

निम्न स्क्रिप्ट निष्पादित करें, उदाहरण के लिए "bash compile_caffe_ubuntu_14.sh" (एक नए उबंटू पर ~ 30 से 60 मिनट)।

# This script installs Caffe and pycaffe. 
# CPU only, multi-threaded Caffe.

# Usage: 
# 0. Set up here how many cores you want to use during the installation:
# By default Caffe will use all these cores.
NUMBER_OF_CORES=4

sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev 
sudo apt-get install -y libopencv-dev libhdf5-serial-dev
sudo apt-get install -y --no-install-recommends libboost-all-dev
sudo apt-get install -y libatlas-base-dev 
sudo apt-get install -y python-dev 
sudo apt-get install -y python-pip git

# For Ubuntu 14.04
sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler 

# Install LMDB
git clone https://github.com/LMDB/lmdb.git 
cd lmdb/libraries/liblmdb
sudo make 
sudo make install

# More pre-requisites 
sudo apt-get install -y cmake unzip doxygen
sudo apt-get install -y protobuf-compiler
sudo apt-get install -y libffi-dev python-pip python-dev build-essential
sudo pip install lmdb
sudo pip install numpy
sudo apt-get install -y python-numpy
sudo apt-get install -y gfortran # required by scipy
sudo pip install scipy # required by scikit-image
sudo apt-get install -y python-scipy # in case pip failed
sudo apt-get install -y python-nose
sudo pip install scikit-image # to fix https://github.com/BVLC/caffe/issues/50


# Get caffe (http://caffe.berkeleyvision.org/installation.html#compilation)
cd
mkdir caffe
cd caffe
wget https://github.com/BVLC/caffe/archive/master.zip
unzip -o master.zip
cd caffe-master

# Prepare Python binding (pycaffe)
cd python
for req in $(cat requirements.txt); do sudo pip install $req; done

# to be able to call "import caffe" from Python after reboot:
echo "export PYTHONPATH=$(pwd):$PYTHONPATH " >> ~/.bash_profile 
source ~/.bash_profile # Update shell 
cd ..

# Compile caffe and pycaffe
cp Makefile.config.example Makefile.config
sed -i '8s/.*/CPU_ONLY := 1/' Makefile.config # Line 8: CPU only
sudo apt-get install -y libopenblas-dev
sed -i '33s/.*/BLAS := open/' Makefile.config # Line 33: to use OpenBLAS
# Note that if one day the Makefile.config changes and these line numbers may change
echo "export OPENBLAS_NUM_THREADS=($NUMBER_OF_CORES)" >> ~/.bash_profile 
mkdir build
cd build
cmake ..
cd ..
make all -j$NUMBER_OF_CORES # 4 is the number of parallel threads for compilation: typically equal to number of physical cores
make pycaffe -j$NUMBER_OF_CORES
make test
make runtest
#make matcaffe
make distribute

# Afew few more dependencies for pycaffe
sudo pip install pydot
sudo apt-get install -y graphviz
sudo pip install scikit-learn

अंत में, आपको "स्रोत ~ / .bash_profile" मैन्युअल रूप से चलाने या एक नया शेल शुरू करने की आवश्यकता है जो 'अजगर आयात कैफ' करने में सक्षम हो।

Caffe के साथ मल्टीथ्रेडिंग सक्षम करें

कैफ कई कोर पर चल सकता है। एक तरीका डिफ़ॉल्ट एटीएलएएस के बजाय ओपनबीएलएएस का उपयोग करने के लिए कैफ के साथ मल्टीथ्रेडिंग को सक्षम करना है। ऐसा करने के लिए, आप इन तीन चरणों का पालन कर सकते हैं:

  1. sudo apt-get install -y libopenblas-dev
  2. कैफ़ को संकलित करने से पहले, Makefile.config संपादित करें, BLAS := atlas प्रतिस्थापित करें BLAS := atlas को BLAS := open
  3. Caffe को संकलित करने के बाद, चल रहे export OPENBLAS_NUM_THREADS=4 कारण Caffe का 4 कोर का उपयोग होगा।

कैफीन में नियमितीकरण हानि (वजन में गिरावट)

सॉल्वर फ़ाइल में, हम weight_decay और regularization_type विकल्पों का उपयोग करके एक वैश्विक नियमितीकरण हानि सेट कर सकते हैं।

कई मामलों में हम अलग-अलग परतों के लिए अलग-अलग वजन घटाने की दर चाहते हैं। यह नेटवर्क परिभाषा फ़ाइल में प्रत्येक परत के लिए decay_mult विकल्प सेट करके किया जा सकता है, जहां decay_mult वैश्विक भार क्षय दर पर गुणक है, इसलिए एक परत के लिए लागू वास्तविक भार क्षय decay_mult*weight_decay

उदाहरण के लिए, निम्न एक ठोस परत के साथ एक विलेय परत को परिभाषित करता है, चाहे सॉल्वर फाइल के विकल्पों की परवाह किए बिना।

layer {
  name: "Convolution1"
  type: "Convolution"
  bottom: "data"
  top: "Convolution1"
  param {
    decay_mult: 0
  }
  convolution_param {
    num_output: 32
    pad: 0
    kernel_size: 3
    stride: 1
    weight_filler {
      type: "xavier"
    }
  }
}

अधिक जानकारी के लिए इस धागे को देखें।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow