basit bir b betiğini pencerelerdeki eşdeğer betiğe dönüştürmek


0

Windows'ta toplu iş dosyasına dönüştürmem gereken komut dosyası:

#!/usr/bin/env sh

TOOLS=./build/tools

$TOOLS/caffe train \
    --solver=examples/cifar10/cifar10_full_relu_solver_bn.prototxt

Şimdiye kadar bulduğum senaryo bu:

REM go to the caffe root
cd ../../Build/x64/Release
caffe.exe train --solver=../../../examples/cifar10/cifar10_full_relu_solver_bn.prototxt

pause

Bu çalıştırılabilir dosyayı çalıştırır ( caffe.exe ) ve gerekli argüman dosyasını gerektiği gibi iletir, ancak sorun, argüman dosyasının kendisinin kendisine göre başka bir dosyaya işaret etmesidir ve bu ikinci dosya bulunamadı.
Bu bizim argüman dosyamızdaki ikinci dosyanın nasıl adreslendiğini gösterir:

net: "examples/cifar10/cifar10_full_relu_train_test_bn.prototxt"

İşleri daha net hale getirmek için, klasörlerin hiyerarşisi şöyledir:

|Build 
   |--X64
      |--Release
         |--caffe.exe
|Examples
   |--Cifar10
      |-- cifar10_full_relu_solver_bn.prototxt
      |-- Cifar10_train_test.prototxt
      |-- other files as well

sorum şu, tüm göreli dosya adreslerini de değiştirmeme gerek kalmayacak şekilde kullanabileceğim bir yol var mı?


Koymak caffe.exe yolunda. Toplu iş dosyasında cd examples.
DavidPostill

şu anda geçerli değildir, her iki klasör de çok fazla şey içerir.
Breeze

Teşekkürler ama şu anda uygulanamaz
Breeze

Çözümünüzü içeren cevabınızı neden sildiniz?
DavidPostill

@DavidPostill, NOLFXceptMe'nin zaten cevabı gönderdiğini fark ettim, her ne kadar doğru olmasa da, cevabını kabul etmek ve gerekli düzeltmeyi uygulamak ve mükemmelleştirmek için iyi bir fikir olduğunu düşündüm.
Breeze

Yanıtlar:


1
SET TOOLS=Build/x64/Release
%TOOLS%/caffe.exe train --solver=examples/cifar10/cifar10_full_relu_solver_bn.prototxt

pause

Bu, kabuk betiğinin ideal dönüşümü olmalıdır. Her zaman kök klasörde kalırız, bu nedenle argüman olarak sağlanan dosyanın içindeki yollara doğru şekilde başvurulmalıdır.


evet teşekkürler, ama sen cd ../../ en başından ya da aksi halde bu işe yaramayacağını bildir.
Breeze

Kabuk komut dosyanızın en üstteki klasörde olması gerekir. İçine yerleştirmek Build/x64/Release kötü bir uygulamadır.
NOLFXceptMe

neden bu kötü uygulama?
Breeze

bu notu ekleyebildiğiniz için minnettar olurum, bu betiğin kökten çalıştırılması veya başka bir şekilde çalışmaması gerekir (eğer gerçek yarasa dosyasının bulunduğu alt dizinden çağrılırsa)
Breeze

bu arada burada ufak bir problem var, bu betiği bu gibi kök sth'den çalıştırdığımda (T: \ Git \ CaffeRoot & gt; data \ mnist \ get_mnist_data.bat`, dosyalar mnist klasörünün içine kaydedilmez) yanlış olan kök klasör! Bu sorunu nasıl çözebilirim?
Breeze

0

Muhtemel çözüm, tüm Cifar10 klasörünü uygun yere kopyalamaktır.


hiç pratik bir çözüm değil. yinede teşekkürler
Breeze

Bu programın mantığını bilmiyorum. İkinci (metin) dosyanın nerede olduğu önemli değilse, o zaman bu dosyayı programın sadece erişilebilir olmasını beklediği yere kopyalayabilirsiniz. Eğer önemi varsa o zaman durum böyle değil.
Oleg Bolden

Aslında, klasörler pek çok şey içeriyor ve bunları hareket ettirmek hiç mantıklı değil, bu yüzden bunu ilk etapta sordum, linux'da sorunum yok, her şey beklendiği gibi çalışıyor, ancak pencerelerde bunu çözene kadar kullanıyorum hemen şimdi :) Teşekkürler bu arada
Breeze

0

Güncelleme:

İşte bir not, bu betiğin doğrudan üzerine çift tıklayalım diyerek bir toplu iş dosyasını çalıştırmak istediğinizde içindir. (Toplu iş dosyasını, içinde bulunduğu (alt) dizinden doğrudan çalıştırmak anlamına gelir.
ancak klasörlerin köklerinden birini çağırmayı düşünüyorsanız, kabul edilen cevabı görmeniz gerekir. Cevabımı burada da bırakıyorum, başkaları için kullanışlı olabilir diye.

Gerçek cevap

Ben de cevap olarak kabul edilen standart yöntemi kullanıyorum.
Sevgili Tanrım sayesinde, sonunda işe yaradım, asıl eşdeğer toplu senaryo şöyle:

REM go to the caffe root
cd ../../

set BIN=build/x64/Release

"%BIN%/caffe.exe" train --solver=examples/cifar10/cifar10_full_relu_solver_bn.prototxt

pause

Bunu kullanarak artık hiçbir şeyi değiştirmeme gerek yok.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.