Skip to content

Commit e88ecbb

Browse files
committed
Adding FProcess catch for discrete flows, and readme update
1 parent 6ff3698 commit e88ecbb

File tree

3 files changed

+10
-2
lines changed

3 files changed

+10
-2
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,12 @@ The animated logo shows samples from a model trained to jointly transport a 2D p
1313

1414
## Features
1515

16-
- Controllable noise (or fully deterministic for flow matching)
1716
- Flexible initial $X_0$ distribution
1817
- Conditioning via masking
1918
- States: Continuous, discrete, and a wide variety of manifolds supported (via [Manifolds.jl](https://github.com/JuliaManifolds/Manifolds.jl))
2019
- Compound states supported (e.g. jointly sampling from both continuous and discrete variables)
20+
- Controllable noise (or fully deterministic for flow matching)
21+
- Time-scaling schedules (see `examples/logo_example.jl`)
2122

2223
### Basic idea:
2324
- Generate `X0` and `X1` states from your favorite distribution, and a random `t` between 0 and 1

src/processes.jl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22
#For processes that aren't used elsewhere
33
##########################################
44

5+
##########################################
6+
#https://arxiv.org/pdf/2407.15595
7+
##########################################
8+
9+
#Note to future self: if I ever use the probability velocity trick for one of the regular discrete CTMCs (thus turning it into a ConvexInterpolatingDiscreteFlow), I'll need to handle the FProcess schedule a little differently.
10+
FProcess(p::ConvexInterpolatingDiscreteFlow, f) = Error("ConvexInterpolatingDiscreteFlow have their own schedule mechanisms. Do not use them with FProcess.")
11+
512
"""
613
InterpolatingDiscreteFlow(κ::Function, κ̇::Function)
714
InterpolatingDiscreteFlow() - Uses default Cosine scheduler.

src/types.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ Adapt.adapt_structure(to, G::Guide) = Guide(Adapt.adapt(to, G.H), Adapt.adapt(to
5050
UState = Union{State,MaskedState, Guide}
5151

5252
#This is for all Flow types where the mixture probabilities are directly defined, and the gen is done via probability velocities.
53-
abstract type ConvexInterpolatingDiscreteFlow <: DiscreteProcess end
53+
abstract type ConvexInterpolatingDiscreteFlow <: DiscreteProcess end #https://arxiv.org/pdf/2407.15595
5454

5555
struct InterpolatingDiscreteFlow <: ConvexInterpolatingDiscreteFlow
5656
κ::Function

0 commit comments

Comments
 (0)