Flux.jl/src/backend/backend.jl

29 lines
685 B
Julia
Raw Normal View History

2017-04-17 14:56:59 +00:00
# We use a lazy-loading trick to load the backend code as needed; this avoids
# the need for a hard dependency on both backends.
# This is effectively equivalent to:
# include("tensorflow/tensorflow.jl")
# using .TF
# export tf
# but instead of loading immediately, we wait until `tf` is first called.
2016-12-16 15:54:15 +00:00
function loadtf()
isdefined(Flux, :TF) && return
@eval include(joinpath(dirname($@__FILE__), "tensorflow/tensorflow.jl"))
end
function tf(args...)
loadtf()
2017-01-30 16:56:46 +00:00
eval(:(TF.tf($(args...))))
2016-12-16 15:54:15 +00:00
end
2017-01-28 17:02:49 +00:00
function loadmx()
isdefined(Flux, :MX) && return
@eval include(joinpath(dirname($@__FILE__), "mxnet/mxnet.jl"))
end
2017-03-08 21:41:13 +00:00
function mxnet(m)
2017-01-28 17:02:49 +00:00
loadmx()
2017-03-08 21:41:13 +00:00
eval(:(MX.mxnet($m)))
2017-01-28 17:02:49 +00:00
end