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


MARC21 XML Export

<?xml version='1.0' encoding='UTF-8'?>
<record xmlns="http://www.loc.gov/MARC21/slim">
  <leader>00000nmm##2200000uu#4500</leader>
  <controlfield tag="005">20200125072544.0</controlfield>
  <controlfield tag="001">1442734</controlfield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">Thermo Fisher Scientific (@thermofisher)</subfield>
    <subfield code="a">Holger Kohr</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">KTH Royal Institute of Technology</subfield>
    <subfield code="a">Axel Ringh</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">Helmholtz-Zentrum Geesthacht</subfield>
    <subfield code="a">Julian Moosmann</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">KTH Royal Institute of Technology</subfield>
    <subfield code="a">sbanert</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">University of Bath</subfield>
    <subfield code="a">Matthias J. Ehrhardt</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">Cincinnati Children's Hospital Medical Center</subfield>
    <subfield code="a">Gregory R. Lee</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="a">niinimaki</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="a">bgris</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">Mathematician</subfield>
    <subfield code="a">Olivier Verdier</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">KTH Royal Institute of Technology</subfield>
    <subfield code="a">Johan Karlsson</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="a">zickert</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="a">Willem Jan Palenstijn</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">KTH - Royal Institute of Technology</subfield>
    <subfield code="a">Ozan Öktem</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">LSEC, ICMSEC, Academy of Mathematics and Systems Science, Chinese Academy of Sciences</subfield>
    <subfield code="a">Chong Chen</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">Technische Universität Berlin (TUB)</subfield>
    <subfield code="a">Hector Andrade Loarca</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="a">Michael Lohmann</subfield>
  </datafield>
  <datafield tag="856" ind1="4" ind2=" ">
    <subfield code="s">1781546</subfield>
    <subfield code="z">md5:76aa2c05b7d7196fd684cbb48ec1a699</subfield>
    <subfield code="u">https://zenodo.org/record/1442734/files/odlgroup/odl-v0.7.0.zip</subfield>
  </datafield>
  <datafield tag="542" ind1=" " ind2=" ">
    <subfield code="l">open</subfield>
  </datafield>
  <datafield tag="260" ind1=" " ind2=" ">
    <subfield code="c">2018-09-09</subfield>
  </datafield>
  <datafield tag="909" ind1="C" ind2="O">
    <subfield code="p">software</subfield>
    <subfield code="o">oai:zenodo.org:1442734</subfield>
  </datafield>
  <datafield tag="100" ind1=" " ind2=" ">
    <subfield code="u">KTH Royal institute of Technology</subfield>
    <subfield code="a">Jonas Adler</subfield>
  </datafield>
  <datafield tag="245" ind1=" " ind2=" ">
    <subfield code="a">odlgroup/odl: ODL 0.7.0</subfield>
  </datafield>
  <datafield tag="540" ind1=" " ind2=" ">
    <subfield code="a">Other (Open)</subfield>
  </datafield>
  <datafield tag="650" ind1="1" ind2="7">
    <subfield code="a">cc-by</subfield>
    <subfield code="2">opendefinition.org</subfield>
  </datafield>
  <datafield tag="520" ind1=" " ind2=" ">
    <subfield code="a">&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;What follows are the &lt;strong&gt;highlights&lt;/strong&gt; of the release. For a more detailed list of all changes, please refer to &lt;a href="https://odlgroup.github.io/odl/release_notes.html"&gt;the release notes in the documentation&lt;/a&gt;.&lt;/p&gt;
Native multi-indexing of ODL space elements
&lt;p&gt;The &lt;code&gt;DiscreteLpElement&lt;/code&gt; and &lt;code&gt;Tensor&lt;/code&gt; (renamed from &lt;code&gt;FnBaseVector&lt;/code&gt;) data structures now natively support almost all kinds of Numpy "fancy" indexing. 
At the same time, the spaces &lt;code&gt;DiscreteLp&lt;/code&gt; and &lt;code&gt;Tensorspace&lt;/code&gt; (renamed from &lt;code&gt;FnBase&lt;/code&gt;) have more advanced indexing capabilities as well. Up to few exceptions, &lt;code&gt;elem[indices] in space[indices]&lt;/code&gt; is always fulfilled.
Alongside, &lt;code&gt;ProductSpace&lt;/code&gt; and its elements also support more advanced indexing, in particular in the case of power spaces.&lt;/p&gt;
&lt;p&gt;Furthermore, integration with Numpy has been further improved with the implementation of the &lt;code&gt;__array_ufunc__&lt;/code&gt; interface. This allows to transparently use ODL objects in calls to Numpy UFuncs, e.g., &lt;code&gt;np.cos(odl_obj, out=odl_obj)&lt;/code&gt; or &lt;code&gt;np.add.reduce(odl_in, axis=0, out=odl_out)&lt;/code&gt; — both these examples were not possible with the &lt;code&gt;__array__&lt;/code&gt; and &lt;code&gt;__array_wrap__&lt;/code&gt; interfaces.&lt;/p&gt;
&lt;p&gt;Unfortunately, this changeset makes the &lt;code&gt;odlcuda&lt;/code&gt; plugin unusable since it only supports linear indexing. A much more powerful replacement based on CuPy will be added in version 1.0.0.&lt;/p&gt;
Integration with deep learning frameworks
&lt;p&gt;ODL is now integrated with three major deep learning frameworks: TensorFlow, PyTorch and Theano. In particular, ODL &lt;code&gt;Operator&lt;/code&gt; and &lt;code&gt;Functional&lt;/code&gt; 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.&lt;/p&gt;
&lt;p&gt;The implementation of this functionality and examples of its usage can be found in the packages &lt;a href="https://github.com/odlgroup/odl/tree/master/odl/contrib/tensorflow"&gt;&lt;code&gt;tensorflow&lt;/code&gt;&lt;/a&gt;, &lt;a href="https://github.com/odlgroup/odl/tree/master/odl/contrib/torch"&gt;&lt;code&gt;torch&lt;/code&gt;&lt;/a&gt; and &lt;a href="https://github.com/odlgroup/odl/tree/master/odl/contrib/theano"&gt;&lt;code&gt;theano&lt;/code&gt;&lt;/a&gt; in the &lt;code&gt;odl.contrib&lt;/code&gt; sub-package (see below).&lt;/p&gt;
New &lt;code&gt;contrib&lt;/code&gt; sub-package
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;For this reason, we have created a new &lt;a href="https://github.com/odlgroup/odl/tree/master/odl/contrib"&gt;&lt;code&gt;contrib&lt;/code&gt;&lt;/a&gt; sub-package that is intended for exactly this kind of code. As of writing this, &lt;code&gt;contrib&lt;/code&gt; already contains a number of highly useful modules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/odlgroup/odl/tree/master/odl/contrib/datasets"&gt;&lt;code&gt;datasets&lt;/code&gt;&lt;/a&gt;: Loaders and utility code for publicly available datasets (currently FIPS CT, Mayo clinic human CT, Tu Graz MRI and some image data)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/odlgroup/odl/tree/master/odl/contrib/fom"&gt;&lt;code&gt;fom&lt;/code&gt;&lt;/a&gt;: Implementations of Figures-of-Merit for image quality assessment&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/odlgroup/odl/tree/master/odl/contrib/mrc"&gt;&lt;code&gt;mrc&lt;/code&gt;&lt;/a&gt;: Reader and writer for the MRC 2014 data format in electron microscopy&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/odlgroup/odl/tree/master/odl/contrib/param_opt"&gt;&lt;code&gt;param_opt&lt;/code&gt;&lt;/a&gt;: Optimization strategies for method hyperparameters&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/odlgroup/odl/tree/master/odl/contrib/pyshearlab"&gt;&lt;code&gt;pyshearlab&lt;/code&gt;&lt;/a&gt;: Integration of the &lt;code&gt;pyshearlab&lt;/code&gt; Python library for shearlet decomposition and analysis&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/odlgroup/odl/tree/master/odl/contrib/shearlab"&gt;&lt;code&gt;shearlab&lt;/code&gt;&lt;/a&gt;: Integration of the &lt;code&gt;Shearlab.jl&lt;/code&gt; Julia shearlet library&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/odlgroup/odl/tree/master/odl/contrib/solvers"&gt;&lt;code&gt;solvers&lt;/code&gt;&lt;/a&gt;: More exotic functionals and optimization methods than in the core ODL library&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/odlgroup/odl/tree/master/odl/contrib/tomo"&gt;&lt;code&gt;tomo&lt;/code&gt;&lt;/a&gt;: Vendor- or application-specific geometries (currently Elekta ICON and XIV)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/odlgroup/odl/tree/master/odl/contrib/tensorflow"&gt;&lt;code&gt;tensorflow&lt;/code&gt;&lt;/a&gt;: Integration of ODL with TensorFlow&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/odlgroup/odl/tree/master/odl/contrib/theano"&gt;&lt;code&gt;theano&lt;/code&gt;&lt;/a&gt;: Integration of ODL with Theano&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/odlgroup/odl/tree/master/odl/contrib/torch"&gt;&lt;code&gt;torch&lt;/code&gt;&lt;/a&gt;: Integration of ODL with PyTorch&lt;/li&gt;
&lt;/ul&gt;
Overhaul of tomographic geometries
&lt;p&gt;The classes for representing tomographic geometries in &lt;code&gt;odl.tomo&lt;/code&gt; 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.
Additionally, factory functions &lt;code&gt;cone_beam_geometry&lt;/code&gt; and &lt;code&gt;helical_geometry&lt;/code&gt; have been added as a simpler and more accessible way to create cone beam geometries.&lt;/p&gt;</subfield>
  </datafield>
  <datafield tag="773" ind1=" " ind2=" ">
    <subfield code="n">url</subfield>
    <subfield code="i">isSupplementTo</subfield>
    <subfield code="a">https://github.com/odlgroup/odl/tree/v0.7.0</subfield>
  </datafield>
  <datafield tag="773" ind1=" " ind2=" ">
    <subfield code="n">doi</subfield>
    <subfield code="i">isVersionOf</subfield>
    <subfield code="a">10.5281/zenodo.592765</subfield>
  </datafield>
  <datafield tag="024" ind1=" " ind2=" ">
    <subfield code="a">10.5281/zenodo.1442734</subfield>
    <subfield code="2">doi</subfield>
  </datafield>
  <datafield tag="980" ind1=" " ind2=" ">
    <subfield code="a">software</subfield>
  </datafield>
</record>
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