Software Open Access

odlgroup/odl: ODL 0.7.0

Jonas Adler; Holger Kohr; Axel Ringh; Julian Moosmann; sbanert; Matthias J. Ehrhardt; Gregory R. Lee; niinimaki; bgris; Olivier Verdier; Johan Karlsson; zickert; Willem Jan Palenstijn; Ozan Öktem; Chong Chen; Hector Andrade Loarca; Michael Lohmann


JSON-LD (schema.org) Export

{
  "description": "<p>This release is a big one as it includes the cumulative work over a period of 1 1/2 years. It is planned to be the last release before version 1.0.0 where we expect to land a number of exciting new features.</p>\n<p>What follows are the <strong>highlights</strong> of the release. For a more detailed list of all changes, please refer to <a href=\"https://odlgroup.github.io/odl/release_notes.html\">the release notes in the documentation</a>.</p>\nNative multi-indexing of ODL space elements\n<p>The <code>DiscreteLpElement</code> and <code>Tensor</code> (renamed from <code>FnBaseVector</code>) data structures now natively support almost all kinds of Numpy \"fancy\" indexing. \nAt the same time, the spaces <code>DiscreteLp</code> and <code>Tensorspace</code> (renamed from <code>FnBase</code>) have more advanced indexing capabilities as well. Up to few exceptions, <code>elem[indices] in space[indices]</code> is always fulfilled.\nAlongside, <code>ProductSpace</code> and its elements also support more advanced indexing, in particular in the case of power spaces.</p>\n<p>Furthermore, integration with Numpy has been further improved with the implementation of the <code>__array_ufunc__</code> interface. This allows to transparently use ODL objects in calls to Numpy UFuncs, e.g., <code>np.cos(odl_obj, out=odl_obj)</code> or <code>np.add.reduce(odl_in, axis=0, out=odl_out)</code> \u2014 both these examples were not possible with the <code>__array__</code> and <code>__array_wrap__</code> interfaces.</p>\n<p>Unfortunately, this changeset makes the <code>odlcuda</code> plugin unusable since it only supports linear indexing. A much more powerful replacement based on CuPy will be added in version 1.0.0.</p>\nIntegration with deep learning frameworks\n<p>ODL is now integrated with three major deep learning frameworks: TensorFlow, PyTorch and Theano. In particular, ODL <code>Operator</code> and <code>Functional</code> objects can be used as layers in neural networks, with support for automatic differentiation and backpropagation. This makes a lot of (inverse) problems that ODL can handle well, e.g., tomography, accessible to the computation engines of the deep learning field, and opens up a wide range of possibilities to combine the two.</p>\n<p>The implementation of this functionality and examples of its usage can be found in the packages <a href=\"https://github.com/odlgroup/odl/tree/master/odl/contrib/tensorflow\"><code>tensorflow</code></a>, <a href=\"https://github.com/odlgroup/odl/tree/master/odl/contrib/torch\"><code>torch</code></a> and <a href=\"https://github.com/odlgroup/odl/tree/master/odl/contrib/theano\"><code>theano</code></a> in the <code>odl.contrib</code> sub-package (see below).</p>\nNew <code>contrib</code> sub-package\n<p>The core ODL library is intended to stay focused on general-purpose classes and data structures, and good code quality is a major goal. This implies that contributions need to undergo scrutiny in a review process, and that some contributions might not be a good fit if they are too specific for certain applications.</p>\n<p>For this reason, we have created a new <a href=\"https://github.com/odlgroup/odl/tree/master/odl/contrib\"><code>contrib</code></a> sub-package that is intended for exactly this kind of code. As of writing this, <code>contrib</code> already contains a number of highly useful modules:</p>\n<ul>\n<li><a href=\"https://github.com/odlgroup/odl/tree/master/odl/contrib/datasets\"><code>datasets</code></a>: Loaders and utility code for publicly available datasets (currently FIPS CT, Mayo clinic human CT, Tu Graz MRI and some image data)</li>\n<li><a href=\"https://github.com/odlgroup/odl/tree/master/odl/contrib/fom\"><code>fom</code></a>: Implementations of Figures-of-Merit for image quality assessment</li>\n<li><a href=\"https://github.com/odlgroup/odl/tree/master/odl/contrib/mrc\"><code>mrc</code></a>: Reader and writer for the MRC 2014 data format in electron microscopy</li>\n<li><a href=\"https://github.com/odlgroup/odl/tree/master/odl/contrib/param_opt\"><code>param_opt</code></a>: Optimization strategies for method hyperparameters</li>\n<li><a href=\"https://github.com/odlgroup/odl/tree/master/odl/contrib/pyshearlab\"><code>pyshearlab</code></a>: Integration of the <code>pyshearlab</code> Python library for shearlet decomposition and analysis</li>\n<li><a href=\"https://github.com/odlgroup/odl/tree/master/odl/contrib/shearlab\"><code>shearlab</code></a>: Integration of the <code>Shearlab.jl</code> Julia shearlet library</li>\n<li><a href=\"https://github.com/odlgroup/odl/tree/master/odl/contrib/solvers\"><code>solvers</code></a>: More exotic functionals and optimization methods than in the core ODL library</li>\n<li><a href=\"https://github.com/odlgroup/odl/tree/master/odl/contrib/tomo\"><code>tomo</code></a>: Vendor- or application-specific geometries (currently Elekta ICON and XIV)</li>\n<li><a href=\"https://github.com/odlgroup/odl/tree/master/odl/contrib/tensorflow\"><code>tensorflow</code></a>: Integration of ODL with TensorFlow</li>\n<li><a href=\"https://github.com/odlgroup/odl/tree/master/odl/contrib/theano\"><code>theano</code></a>: Integration of ODL with Theano</li>\n<li><a href=\"https://github.com/odlgroup/odl/tree/master/odl/contrib/torch\"><code>torch</code></a>: Integration of ODL with PyTorch</li>\n</ul>\nOverhaul of tomographic geometries\n<p>The classes for representing tomographic geometries in <code>odl.tomo</code> have undergone a major update, resulting in a consistent definition of coordinate systems across all cases, proper documentation, vectorization and broadcasting semantics in all methods that compute vectors, and significant speed-up of backprojection due to better axis handling.\nAdditionally, factory functions <code>cone_beam_geometry</code> and <code>helical_geometry</code> have been added as a simpler and more accessible way to create cone beam geometries.</p>", 
  "license": "", 
  "creator": [
    {
      "affiliation": "KTH Royal institute of Technology", 
      "@type": "Person", 
      "name": "Jonas Adler"
    }, 
    {
      "affiliation": "Thermo Fisher Scientific (@thermofisher)", 
      "@type": "Person", 
      "name": "Holger Kohr"
    }, 
    {
      "affiliation": "KTH Royal Institute of Technology", 
      "@type": "Person", 
      "name": "Axel Ringh"
    }, 
    {
      "affiliation": "Helmholtz-Zentrum Geesthacht", 
      "@type": "Person", 
      "name": "Julian Moosmann"
    }, 
    {
      "affiliation": "KTH Royal Institute of Technology", 
      "@type": "Person", 
      "name": "sbanert"
    }, 
    {
      "affiliation": "University of Bath", 
      "@type": "Person", 
      "name": "Matthias J. Ehrhardt"
    }, 
    {
      "affiliation": "Cincinnati Children's Hospital Medical Center", 
      "@type": "Person", 
      "name": "Gregory R. Lee"
    }, 
    {
      "affiliation": "", 
      "@type": "Person", 
      "name": "niinimaki"
    }, 
    {
      "affiliation": "", 
      "@type": "Person", 
      "name": "bgris"
    }, 
    {
      "affiliation": "Mathematician", 
      "@type": "Person", 
      "name": "Olivier Verdier"
    }, 
    {
      "affiliation": "KTH Royal Institute of Technology", 
      "@type": "Person", 
      "name": "Johan Karlsson"
    }, 
    {
      "affiliation": "", 
      "@type": "Person", 
      "name": "zickert"
    }, 
    {
      "affiliation": "", 
      "@type": "Person", 
      "name": "Willem Jan Palenstijn"
    }, 
    {
      "affiliation": "KTH - Royal Institute of Technology", 
      "@type": "Person", 
      "name": "Ozan \u00d6ktem"
    }, 
    {
      "affiliation": "LSEC, ICMSEC, Academy of Mathematics and Systems Science, Chinese Academy of Sciences", 
      "@type": "Person", 
      "name": "Chong Chen"
    }, 
    {
      "affiliation": "Technische Universit\u00e4t Berlin (TUB)", 
      "@type": "Person", 
      "name": "Hector Andrade Loarca"
    }, 
    {
      "affiliation": "", 
      "@type": "Person", 
      "name": "Michael Lohmann"
    }
  ], 
  "url": "https://zenodo.org/record/1442734", 
  "codeRepository": "https://github.com/odlgroup/odl/tree/v0.7.0", 
  "datePublished": "2018-09-09", 
  "version": "v0.7.0", 
  "@context": "https://schema.org/", 
  "identifier": "https://doi.org/10.5281/zenodo.1442734", 
  "@id": "https://doi.org/10.5281/zenodo.1442734", 
  "@type": "SoftwareSourceCode", 
  "name": "odlgroup/odl: ODL 0.7.0"
}
649
35
views
downloads
All versions This version
Views 649360
Downloads 3518
Data volume 59.1 MB32.1 MB
Unique views 552317
Unique downloads 2213

Share

Cite as