Esempio n. 1
0
from __future__ import absolute_import

import sys
import re

from sporco.cupy import sporco_cupy_patch_module
from sporco.cupy import cp
from sporco.cupy import util
from sporco.cupy import common
from sporco.cupy import linalg
from sporco.cupy import prox
from sporco.cupy import cnvrep


# Construct sporco.cupy.fista
fista = sporco_cupy_patch_module('sporco.fista')

# Construct sporco.cupy.fista.fista
fista.fista = sporco_cupy_patch_module('sporco.fista.fista',
                                       {'util': util, 'common': common,
                                        'sl': linalg})


# Record current entries in sys.modules and then replace them with
# patched versions of the modules
sysmod = {}
for mod in ('sporco.common', 'sporco.fista', 'sporco.fista.fista'):
    if mod in sys.modules:
        sysmod[mod] = sys.modules[mod]
sys.modules['sporco.common'] = common
sys.modules['sporco.fista'] = fista
Esempio n. 2
0
from __future__ import absolute_import

import sys
import re

from sporco.cupy import sporco_cupy_patch_module
from sporco.cupy import cp
from sporco.cupy import util
from sporco.cupy import common
from sporco.cupy import linalg
from sporco.cupy import prox
from sporco.cupy import cnvrep

# Construct sporco.cupy.admm
admm = sporco_cupy_patch_module('sporco.admm')

# Construct sporco.cupy.admm.admm
admm.admm = sporco_cupy_patch_module('sporco.admm.admm', {
    'util': util,
    'common': common
})


def _update_rho(self, k, r, s):
    """
    Patched version of :func:`sporco.admm.admm.ADMM.update_rho`."""

    if self.opt['AutoRho', 'Enabled']:
        tau = self.rho_tau
        mu = self.rho_mu
Esempio n. 3
0
import re

from sporco.cupy import sporco_cupy_patch_module
from sporco.cupy import cp
from sporco.cupy import util
from sporco.cupy import fft
from sporco.cupy import signal
from sporco.cupy import array
from sporco.cupy import common
from sporco.cupy import linalg
from sporco.cupy import prox
from sporco.cupy import cnvrep


# Construct sporco.cupy.admm
admm = sporco_cupy_patch_module('sporco.admm')

# Construct sporco.cupy.admm.admm
admm.admm = sporco_cupy_patch_module('sporco.admm.admm',
                                     {'util': util, 'common': common})


def _update_rho(self, k, r, s):
    """
    Patched version of :func:`sporco.admm.admm.ADMM.update_rho`."""

    if self.opt['AutoRho', 'Enabled']:
        tau = self.rho_tau
        mu = self.rho_mu
        xi = self.rho_xi
        if k != 0 and cp.mod(k + 1, self.opt['AutoRho', 'Period']) == 0:
Esempio n. 4
0
from __future__ import absolute_import

import sys
import re

from sporco.cupy import sporco_cupy_patch_module
from sporco.cupy import cp
from sporco.cupy import util
from sporco.cupy import common
from sporco.cupy import linalg
from sporco.cupy import prox
from sporco.cupy import cnvrep

# Construct sporco.cupy.fista
fista = sporco_cupy_patch_module('sporco.fista')

# Construct sporco.cupy.fista.fista
fista.fista = sporco_cupy_patch_module('sporco.fista.fista', {
    'util': util,
    'common': common,
    'sl': linalg
})

# Record current entries in sys.modules and then replace them with
# patched versions of the modules
sysmod = {}
for mod in ('sporco.common', 'sporco.fista', 'sporco.fista.fista'):
    if mod in sys.modules:
        sysmod[mod] = sys.modules[mod]
sys.modules['sporco.common'] = common
Esempio n. 5
0
from __future__ import absolute_import

import sys
import re

from sporco.cupy import sporco_cupy_patch_module
from sporco.cupy import cp
from sporco.cupy import util
from sporco.cupy import common
from sporco.cupy import linalg
from sporco.cupy import prox
from sporco.cupy import cnvrep


# Construct sporco.cupy.admm
admm = sporco_cupy_patch_module('sporco.admm')

# Construct sporco.cupy.admm.admm
admm.admm = sporco_cupy_patch_module('sporco.admm.admm',
                                     {'util': util, 'common': common})


def _update_rho(self, k, r, s):
    """
    Patched version of :func:`sporco.admm.admm.ADMM.update_rho`."""

    if self.opt['AutoRho', 'Enabled']:
        tau = self.rho_tau
        mu = self.rho_mu
        xi = self.rho_xi
        if k != 0 and cp.mod(k + 1, self.opt['AutoRho', 'Period']) == 0:
Esempio n. 6
0
from __future__ import absolute_import

import sys
import re

from sporco.cupy import sporco_cupy_patch_module
from sporco.cupy import cp
from sporco.cupy import array
from sporco.cupy import linalg
from sporco.cupy import fft
from sporco.cupy import cnvrep
from sporco.cupy.admm import cbpdn

# Construct sporco.cupy.dictlrn
dictlrn = sporco_cupy_patch_module('sporco.dictlrn')

# Construct sporco.cupy.dictlrn.onlinecdl
dictlrn.onlinecdl = sporco_cupy_patch_module(
    'sporco.dictlrn.onlinecdl', {
        'cbpdn': cbpdn,
        'inner': linalg.inner,
        'rfftn': fft.rfftn,
        'irfftn': fft.irfftn,
        'empty_aligned': fft.empty_aligned,
        'byte_aligned': fft.byte_aligned,
        'DictionarySize': cnvrep.DictionarySize,
        'stdformD': cnvrep.stdformD,
        'Pcn': cnvrep.Pcn,
        'getPcn': cnvrep.getPcn,
        'CDU_ConvRepIndexing': cnvrep.CDU_ConvRepIndexing,
Esempio n. 7
0
# and user license can be found in the 'LICENSE.txt' file distributed
# with the package.
"""Construct variant of dictlrn subpackage that use cupy instead of numpy"""

from __future__ import absolute_import

import sys
import re

from sporco.cupy import sporco_cupy_patch_module
from sporco.cupy import cp
from sporco.cupy import linalg
from sporco.cupy import cnvrep
from sporco.cupy.admm import cbpdn

# Construct sporco.cupy.dictlrn
dictlrn = sporco_cupy_patch_module('sporco.dictlrn')

# Construct sporco.cupy.dictlrn.onlinecdl
dictlrn.onlinecdl = sporco_cupy_patch_module('sporco.dictlrn.onlinecdl', {
    'sl': linalg,
    'cr': cnvrep,
    'cbpdn': cbpdn
})

# In sporco.cupy.dictlrn module, replace original module source path with
# corresponding path in 'sporco/cupy' directory tree
for n, pth in enumerate(sys.modules['sporco.cupy.dictlrn'].__path__):
    pth = re.sub('sporco/', 'sporco/cupy/', pth)
    sys.modules['sporco.cupy.dictlrn'].__path__[n] = pth
Esempio n. 8
0
"""Construct variant of pgm subpackage that use cupy instead of numpy."""

from __future__ import absolute_import

import sys
import re

from sporco.cupy import sporco_cupy_patch_module
from sporco.cupy import common
from sporco.cupy import linalg
from sporco.cupy import fft
from sporco.cupy import prox
from sporco.cupy import cnvrep

# Construct sporco.cupy.pgm
pgm = sporco_cupy_patch_module('sporco.pgm')

# Construct cupy versions of sporco.pgm auxiliary modules
pgm.backtrack = sporco_cupy_patch_module('sporco.pgm.backtrack')
pgm.momentum = sporco_cupy_patch_module('sporco.pgm.momentum')
pgm.stepsize = sporco_cupy_patch_module('sporco.pgm.stepsize')

# Construct sporco.cupy.pgm.pgm
pgm.pgm = sporco_cupy_patch_module(
    'sporco.pgm.pgm', {
        'IterativeSolver': common.IterativeSolver,
        'rfftn': fft.rfftn,
        'irfftn': fft.irfftn,
        'BacktrackStandard': pgm.backtrack.BacktrackStandard,
        'BacktrackRobust': pgm.backtrack.BacktrackRobust,
        'MomentumNesterov': pgm.momentum.MomentumNesterov,
Esempio n. 9
0
# and user license can be found in the 'LICENSE.txt' file distributed
# with the package.

"""Construct variant of dictlrn subpackage that use cupy instead of numpy"""

from __future__ import absolute_import

import sys
import re

from sporco.cupy import sporco_cupy_patch_module
from sporco.cupy import cp
from sporco.cupy import linalg
from sporco.cupy import cnvrep
from sporco.cupy.admm import cbpdn


# Construct sporco.cupy.dictlrn
dictlrn = sporco_cupy_patch_module('sporco.dictlrn')

# Construct sporco.cupy.dictlrn.onlinecdl
dictlrn.onlinecdl = sporco_cupy_patch_module(
    'sporco.dictlrn.onlinecdl', {'sl': linalg, 'cr': cnvrep, 'cbpdn': cbpdn})


# In sporco.cupy.dictlrn module, replace original module source path with
# corresponding path in 'sporco/cupy' directory tree
for n, pth in enumerate(sys.modules['sporco.cupy.dictlrn'].__path__):
    pth = re.sub('sporco/', 'sporco/cupy/', pth)
    sys.modules['sporco.cupy.dictlrn'].__path__[n] = pth
Esempio n. 10
0
import sys
import re

from sporco.cupy import sporco_cupy_patch_module
from sporco.cupy import cp
from sporco.cupy import util
from sporco.cupy import common
from sporco.cupy import array
from sporco.cupy import linalg
from sporco.cupy import fft
from sporco.cupy import prox
from sporco.cupy import cnvrep


# Construct sporco.cupy.fista
fista = sporco_cupy_patch_module('sporco.fista')

# Construct sporco.cupy.fista.fista
fista.fista = sporco_cupy_patch_module('sporco.fista.fista',
             {'IterativeSolver': common.IterativeSolver,
              'rfftn': fft.rfftn, 'irfftn': fft.irfftn})


# Record current entries in sys.modules and then replace them with
# patched versions of the modules
sysmod = {}
for mod in ('sporco.common', 'sporco.fista', 'sporco.fista.fista'):
    if mod in sys.modules:
        sysmod[mod] = sys.modules[mod]
sys.modules['sporco.common'] = common
sys.modules['sporco.fista'] = fista