Comments (1)
I think this is a very interesting idea, but I think we have to think it through really carefully. I think there are a couple of trade-offs regarding how much data should be saved to be efficient on multiple calls versus being efficient on a single call.
Do you think this should be the output even for prox!
? This could potentially lead to a lot of extra allocations, for example in
for i = 1:100000
prox!(y,f,x)
x = 0.5*x .+ 0.5*y
end
we would allocate one point::AbstractArray
in every call. Unless we let this element refer to the vector y
, in which case the user might inadvertently change the elements inside the ProximalPoint
. (Immutable only means that it will reference the same array, the elements in the array might still change).
As a side-note: We should probably not let the definition be
immutable ProximalPoint <: AbstractArray
f::ProximableFunction
point::AbstractArray
value::Real
end
but rather
immutable ProximalPoint{F<:ProximableFunction, P<:AbstractArray, V<:Real}
f::F
point::P
value::V
end
I created a related issue #23 for the existing problems of this type.
from proximaloperators.jl.
Related Issues (20)
- Add prox! method for IndPSD handling matrices
- possible test failure in upcoming Julia version 1.5 HOT 1
- Projection on Stiefel manifold HOT 1
- Polishing docstrings
- Computing proximal operator of a constrained convex function HOT 5
- Nonnegative least squares example HOT 3
- TagBot trigger issue HOT 18
- TV norm prox HOT 6
- Replace exponential cone projection? HOT 3
- Lightweight “base” package with core definitions
- Sums of norms HOT 2
- SqrNormL2 expects λ to be positive HOT 3
- Is ProximableFunction no longer supported? HOT 2
- calculus function fields HOT 4
- nonconvex prox calculus rule HOT 1
- Multi-threaded operators evaluation
- Improve pretty printing HOT 3
- GPU support via CuArrays.jl HOT 12
- Prox of Sum HOT 2
- Locally Low-Rank operator HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from proximaloperators.jl.