Skip to content

Instantly share code, notes, and snippets.

@arokem
Created March 16, 2015 19:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save arokem/bc29f34ebc97510d9def to your computer and use it in GitHub Desktop.
Save arokem/bc29f34ebc97510d9def to your computer and use it in GitHub Desktop.
{"nbformat_minor": 0, "cells": [{"execution_count": 1, "cell_type": "code", "source": "%load_ext memory_profiler", "outputs": [], "metadata": {"collapsed": false, "trusted": true}}, {"execution_count": 2, "cell_type": "code", "source": "import numpy as np\nimport matplotlib\nimport matplotlib.pyplot as plt\n%matplotlib inline", "outputs": [], "metadata": {"collapsed": false, "trusted": true}}, {"execution_count": 3, "cell_type": "code", "source": "from dipy.data import read_stanford_labels\nimport nibabel as nib\nhardi_img, gtab, labels_img = read_stanford_labels()\ndata = hardi_img.get_data()\ncandidate_sl = [s[0] for s in nib.trackvis.read('./probabilistic_small_sphere.trk', points_space='voxel')[0]]", "outputs": [{"output_type": "stream", "name": "stdout", "text": "Dataset is already in place. If you want to fetch it again, please first remove the folder /home/arokem/.dipy/stanford_hardi \nAll files already in /home/arokem/.dipy/stanford_hardi.\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"execution_count": 4, "cell_type": "code", "source": "import dipy.tracking.life as life\nfiber_model = life.FiberModel(gtab)", "outputs": [], "metadata": {"collapsed": false, "trusted": true}}, {"execution_count": 5, "cell_type": "code", "source": "len(candidate_sl)", "outputs": [{"execution_count": 5, "output_type": "execute_result", "data": {"text/plain": "2435680"}, "metadata": {}}], "metadata": {"collapsed": false, "trusted": true}}, {"execution_count": 6, "cell_type": "code", "source": "for i in np.arange(0, 19):\n this = 2 ** i\n print(\"Number of streamlines: %s\"%this)\n %memit fiber_fit = fiber_model.fit(data, candidate_sl[:this], affine=np.eye(4))", "outputs": [{"output_type": "stream", "name": "stdout", "text": "Number of streamlines: 1\npeak memory: 3261.71 MiB, increment: 0.59 MiB\nNumber of streamlines: 2\npeak memory: 3261.73 MiB, increment: 0.00 MiB\nNumber of streamlines: 4\npeak memory: 3261.75 MiB, increment: 0.02 MiB\nNumber of streamlines: 8\npeak memory: 3261.75 MiB, increment: 0.00 MiB\nNumber of streamlines: 16\npeak memory: 3261.76 MiB, increment: 0.01 MiB\nNumber of streamlines: 32\npeak memory: 3261.76 MiB, increment: 0.00 MiB\nNumber of streamlines: 64\npeak memory: 3261.76 MiB, increment: 0.00 MiB\nNumber of streamlines: 128\npeak memory: 3261.76 MiB, increment: 0.00 MiB\nNumber of streamlines: 256\npeak memory: 3261.76 MiB, increment: 0.00 MiB\nNumber of streamlines: 512\npeak memory: 3261.76 MiB, increment: 0.00 MiB\nNumber of streamlines: 1024\npeak memory: 3261.76 MiB, increment: 0.00 MiB\nNumber of streamlines: 2048\npeak memory: 3276.14 MiB, increment: 14.38 MiB\nNumber of streamlines: 4096\npeak memory: 3321.05 MiB, increment: 44.91 MiB\nNumber of streamlines: 8192\npeak memory: 3414.68 MiB, increment: 93.63 MiB\nNumber of streamlines: 16384\npeak memory: 3617.24 MiB, increment: 202.57 MiB\nNumber of streamlines: 32768\npeak memory: 4721.73 MiB, increment: 1281.57 MiB\nNumber of streamlines: 65536\npeak memory: 8826.69 MiB, increment: 4939.83 MiB\nNumber of streamlines: 131072\npeak memory: 20247.30 MiB, increment: 14472.56 MiB\nNumber of streamlines: 262144\npeak memory: 55127.31 MiB, increment: 43989.15 MiB\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"execution_count": 9, "cell_type": "code", "source": "m = [3261.71, 3261.73, 3261.75, 3261.76, 3261.76, 3261.76,\n 3261.76, 3261.76, 3261.76, 3261.76, 3261.76, 3276.14,\n 3321.05, 3414.68, 3617.24, 4721.73, 8826.69, 20247.30, 55127.31] ", "outputs": [], "metadata": {"collapsed": false, "trusted": true}}, {"execution_count": 10, "cell_type": "code", "source": "fig, ax = plt.subplots()\nax.plot(2 ** np.arange(19), m, 'o-')\nax.set_ylabel('Memory usage (MiB)')\nax.set_xlabel('# streamlines')", "outputs": [{"execution_count": 10, "output_type": "execute_result", "data": {"text/plain": "<matplotlib.text.Text at 0x2578ded0>"}, "metadata": {}}, {"output_type": "display_data", "data": {"image/png": "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\nQggx5v8AwUUCDEiqVHIAAAAASUVORK5CYII=\n", "text/plain": "<matplotlib.figure.Figure at 0xd11e0a10>"}, "metadata": {}}], "metadata": {"collapsed": false, "trusted": true}}, {"execution_count": null, "cell_type": "code", "source": "", "outputs": [], "metadata": {"collapsed": false, "trusted": true}}], "nbformat": 4, "metadata": {"kernelspec": {"display_name": "Python 2", "name": "python2", "language": "python"}, "language_info": {"mimetype": "text/x-python", "nbconvert_exporter": "python", "version": "2.7.3", "name": "python", "file_extension": ".py", "pygments_lexer": "ipython2", "codemirror_mode": {"version": 2, "name": "ipython"}}}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment