зеркало из https://github.com/microsoft/caffe.git
Update script to parse log format that contains test iteration
This commit is contained in:
Родитель
0cef1e9568
Коммит
b477b0699e
|
@ -0,0 +1,12 @@
|
|||
#!/usr/bin/env sh
|
||||
# This script converts the mnist data into leveldb format.
|
||||
|
||||
echo "Creating leveldb..."
|
||||
|
||||
rm -rf mnist-train-leveldb
|
||||
rm -rf mnist-test-leveldb
|
||||
|
||||
../build/examples/convert_mnist_data.bin train-images-idx3-ubyte train-labels-idx1-ubyte mnist-train-leveldb
|
||||
../build/examples/convert_mnist_data.bin t10k-images-idx3-ubyte t10k-labels-idx1-ubyte mnist-test-leveldb
|
||||
|
||||
echo "Done."
|
|
@ -15,9 +15,7 @@ gunzip train-labels-idx1-ubyte.gz
|
|||
gunzip t10k-images-idx3-ubyte.gz
|
||||
gunzip t10k-labels-idx1-ubyte.gz
|
||||
|
||||
echo "Creating leveldb..."
|
||||
|
||||
../build/examples/convert_mnist_data.bin train-images-idx3-ubyte train-labels-idx1-ubyte mnist-train-leveldb
|
||||
../build/examples/convert_mnist_data.bin t10k-images-idx3-ubyte t10k-labels-idx1-ubyte mnist-test-leveldb
|
||||
# Creation is split out because leveldb sometimes causes segfault
|
||||
# and needs to be re-created.
|
||||
|
||||
echo "Done."
|
||||
|
|
|
@ -30,7 +30,7 @@ def extract_seconds(input_file, output_file):
|
|||
if not start_time_found and line.find('Solving') != -1:
|
||||
start_time_found = True
|
||||
start_datetime = extract_datetime_from_line(line, log_created_year)
|
||||
if line.find(', loss = ') != -1:
|
||||
if line.find('Iteration') != -1:
|
||||
dt = extract_datetime_from_line(line, log_created_year)
|
||||
elapsed_seconds = (dt - start_datetime).total_seconds()
|
||||
out.write('%f\n' % elapsed_seconds)
|
||||
|
|
|
@ -9,16 +9,21 @@ echo "Usage parselog.sh /path/to/your.log"
|
|||
exit
|
||||
fi
|
||||
LOG=`basename $1`
|
||||
# For extraction of time since this line constains the start time
|
||||
grep '] Solving ' $1 > aux.txt
|
||||
grep -B 2 'Test ' $1 >> aux.txt
|
||||
grep -B 1 'Test ' $1 > aux.txt
|
||||
grep 'Iteration ' aux.txt | sed 's/.*Iteration \([[:digit:]]*\).*/\1/g' > aux0.txt
|
||||
grep 'Test score #0' aux.txt | awk '{print $8}' > aux1.txt
|
||||
grep 'Test score #1' aux.txt | awk '{print $8}' > aux2.txt
|
||||
./extract_seconds.py aux.txt aux3.txt
|
||||
|
||||
# Extracting elpased seconds
|
||||
# For extraction of time since this line constains the start time
|
||||
grep '] Solving ' $1 > aux3.txt
|
||||
grep 'Testing net' $1 >> aux3.txt
|
||||
./extract_seconds.py aux3.txt aux4.txt
|
||||
|
||||
# Generating
|
||||
echo '# Iters Seconds TestAccuracy TestLoss'> $LOG.test
|
||||
paste aux0.txt aux3.txt aux1.txt aux2.txt | column -t >> $LOG.test
|
||||
rm aux.txt aux0.txt aux1.txt aux2.txt aux3.txt
|
||||
paste aux0.txt aux4.txt aux1.txt aux2.txt | column -t >> $LOG.test
|
||||
rm aux.txt aux0.txt aux1.txt aux2.txt aux3.txt aux4.txt
|
||||
|
||||
# For extraction of time since this line constains the start time
|
||||
grep '] Solving ' $1 > aux.txt
|
||||
|
@ -26,7 +31,11 @@ grep ', loss = ' $1 >> aux.txt
|
|||
grep 'Iteration ' aux.txt | sed 's/.*Iteration \([[:digit:]]*\).*/\1/g' > aux0.txt
|
||||
grep ', loss = ' $1 | awk '{print $9}' > aux1.txt
|
||||
grep ', lr = ' $1 | awk '{print $9}' > aux2.txt
|
||||
|
||||
# Extracting elpased seconds
|
||||
./extract_seconds.py aux.txt aux3.txt
|
||||
|
||||
# Generating
|
||||
echo '# Iters Seconds TrainingLoss LearningRate'> $LOG.train
|
||||
paste aux0.txt aux3.txt aux1.txt aux2.txt | column -t >> $LOG.train
|
||||
rm aux.txt aux0.txt aux1.txt aux2.txt aux3.txt
|
||||
|
|
|
@ -84,7 +84,7 @@ void Solver<Dtype>::Solve(const char* resume_file) {
|
|||
|
||||
template <typename Dtype>
|
||||
void Solver<Dtype>::Test() {
|
||||
LOG(INFO) << "Testing net";
|
||||
LOG(INFO) << "Iteration " << iter_ << ", Testing net";
|
||||
NetParameter net_param;
|
||||
net_->ToProto(&net_param);
|
||||
CHECK_NOTNULL(test_net_.get())->CopyTrainedLayersFrom(net_param);
|
||||
|
@ -111,7 +111,7 @@ void Solver<Dtype>::Test() {
|
|||
}
|
||||
}
|
||||
for (int i = 0; i < test_score.size(); ++i) {
|
||||
LOG(INFO) << "Iteration " << iter_ << ", Test score #" << i << ": "
|
||||
LOG(INFO) << "Test score #" << i << ": "
|
||||
<< test_score[i] / param_.test_iter();
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче