/usr/lib/python2.7/dist-packages/dipy/tracking/benchmarks/bench_streamline.py is in python-dipy 0.10.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | """ Benchmarks for functions related to streamline
Run all benchmarks with::
import dipy.tracking as dipytracking
dipytracking.bench()
If you have doctests enabled by default in nose (with a noserc file or
environment variable), and you have a numpy version <= 1.6.1, this will also run
the doctests, let's hope they pass.
Run this benchmark with:
nosetests -s --match '(?:^|[\\b_\\.//-])[Bb]ench' /path/to/bench_streamline.py
"""
import numpy as np
from numpy.testing import measure
from dipy.data import get_data
from nibabel import trackvis as tv
from dipy.tracking.streamline import (set_number_of_points,
length,
compress_streamlines)
from dipy.tracking.tests.test_streamline import (set_number_of_points_python,
length_python,
compress_streamlines_python)
def bench_set_number_of_points():
repeat = 1
nb_points_per_streamline = 100
nb_points = 42
nb_streamlines = int(1e4)
streamlines = [np.random.rand(nb_points_per_streamline, 3).astype("float32") for i in range(nb_streamlines)]
print("Timing set_number_of_points() in Cython ({0} streamlines)".format(nb_streamlines))
cython_time = measure("set_number_of_points(streamlines, nb_points)", repeat)
print("Cython time: {0:.3}sec".format(cython_time))
del streamlines
streamlines = [np.random.rand(nb_points_per_streamline, 3).astype("float32") for i in range(nb_streamlines)]
python_time = measure("[set_number_of_points_python(s, nb_points) for s in streamlines]", repeat)
print("Python time: {0:.2}sec".format(python_time))
print("Speed up of {0}x".format(python_time/cython_time))
del streamlines
def bench_length():
repeat = 1
nb_points_per_streamline = 100
nb_streamlines = int(1e5)
streamlines = [np.random.rand(nb_points_per_streamline, 3).astype("float32") for i in range(nb_streamlines)]
print("Timing length() in Cython ({0} streamlines)".format(nb_streamlines))
cython_time = measure("length(streamlines)", repeat)
print("Cython time: {0:.3}sec".format(cython_time))
del streamlines
streamlines = [np.random.rand(nb_points_per_streamline, 3).astype("float32") for i in range(nb_streamlines)]
python_time = measure("[length_python(s) for s in streamlines]", repeat)
print("Python time: {0:.2}sec".format(python_time))
print("Speed up of {0}x".format(python_time/cython_time))
del streamlines
def bench_compress_streamlines():
repeat = 10
fname = get_data('fornix')
streams, hdr = tv.read(fname)
streamlines = [i[0] for i in streams]
print("Timing compress_streamlines() in Cython ({0} streamlines)".format(len(streamlines)))
cython_time = measure("compress_streamlines(streamlines)", repeat)
print("Cython time: {0:.3}sec".format(cython_time))
del streamlines
fname = get_data('fornix')
streams, hdr = tv.read(fname)
streamlines = [i[0] for i in streams]
python_time = measure("map(compress_streamlines_python, streamlines)", repeat)
print("Python time: {0:.2}sec".format(python_time))
print("Speed up of {0}x".format(python_time/cython_time))
del streamlines
|