diff --git a/docs/make.jl b/docs/make.jl index bae43d1e73..1d0f2ae10c 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -88,7 +88,7 @@ makedocs(; sitename="Lux.jl Documentation", repo="github.com/LuxDL/Lux.jl", devbranch="main", devurl="dev", deploy_url="https://lux.csail.mit.edu", deploy_decision), draft=false, - pages=pages) + pages) deploydocs(; repo="github.com/LuxDL/Lux.jl.git", push_preview=true, target="build", devbranch="main") diff --git a/docs/src/.vitepress/config.mts b/docs/src/.vitepress/config.mts index c111c1c44c..624755d5a1 100644 --- a/docs/src/.vitepress/config.mts +++ b/docs/src/.vitepress/config.mts @@ -64,7 +64,7 @@ export default defineConfig({ { text: 'Home', link: '/' }, { text: 'Getting Started', link: '/introduction' }, { text: 'Benchmarks', link: 'https://lux.csail.mit.edu/benchmarks/' }, - { text: 'Tutorials', link: '/tutorials' }, + { text: 'Tutorials', link: '/tutorials/' }, { text: 'Manual', link: '/manual/interface' }, { text: 'API', items: [ @@ -120,7 +120,7 @@ export default defineConfig({ }, "/tutorials/": { text: 'Tutorials', collapsed: false, items: [ - { text: 'Overview', link: '/tutorials' }, + { text: 'Overview', link: '/tutorials/' }, { text: 'Beginner', collapsed: false, items: [ { text: 'Julia & Lux for the Uninitiated', link: '/tutorials/beginner/1_Basics' }, @@ -137,6 +137,25 @@ export default defineConfig({ { text: 'Advanced', collapsed: false, items: [ { text: 'Training a Neural ODE to Model Gravitational Waveforms', link: '/tutorials/advanced/1_GravitationalWaveForm' }] + }, + { + text: '3rd Party Tutorials', collapsed: true, items: [ + { + text: 'PINNs (NeuralPDE.jl)', link: 'https://docs.sciml.ai/NeuralPDE/stable/tutorials/pdesystem/' + }, + { + text: 'UDEs (SciMLSensitivity.jl)', link: 'https://docs.sciml.ai/SciMLSensitivity/stable/tutorials/data_parallel/' + }, + { + text: 'Neural DEs (DiffEqFlux.jl)', link: 'https://docs.sciml.ai/DiffEqFlux/stable/examples/neural_ode/' + }, + { + text: 'DEQs (DeepEquilibriumNetworks.jl)', link: 'https://docs.sciml.ai/DeepEquilibriumNetworks/stable/tutorials/basic_mnist_deq/' + }, + { + text: 'Medical Image Segmentation', link: 'https://github.com/Dale-Black/ComputerVisionTutorials.jl/' + } + ] }] }, "/manual/": { diff --git a/docs/src/assets/android-chrome-192x192.png b/docs/src/assets/android-chrome-192x192.png deleted file mode 100644 index 55483620af..0000000000 Binary files a/docs/src/assets/android-chrome-192x192.png and /dev/null differ diff --git a/docs/src/assets/android-chrome-512x512.png b/docs/src/assets/android-chrome-512x512.png deleted file mode 100644 index ad2732be1f..0000000000 Binary files a/docs/src/assets/android-chrome-512x512.png and /dev/null differ diff --git a/docs/src/assets/apple-touch-icon.png b/docs/src/assets/apple-touch-icon.png deleted file mode 100644 index bd238f5147..0000000000 Binary files a/docs/src/assets/apple-touch-icon.png and /dev/null differ diff --git a/docs/src/assets/favicon-16x16.png b/docs/src/assets/favicon-16x16.png deleted file mode 100644 index 1365c74d4c..0000000000 Binary files a/docs/src/assets/favicon-16x16.png and /dev/null differ diff --git a/docs/src/assets/favicon-32x32.png b/docs/src/assets/favicon-32x32.png deleted file mode 100644 index a303c49e06..0000000000 Binary files a/docs/src/assets/favicon-32x32.png and /dev/null differ diff --git a/docs/src/assets/favicon.ico b/docs/src/assets/favicon.ico deleted file mode 100644 index c4f81393f0..0000000000 Binary files a/docs/src/assets/favicon.ico and /dev/null differ diff --git a/docs/src/assets/site.webmanifest b/docs/src/assets/site.webmanifest deleted file mode 100644 index 45dc8a2065..0000000000 --- a/docs/src/assets/site.webmanifest +++ /dev/null @@ -1 +0,0 @@ -{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/docs/src/components/Gallery.vue b/docs/src/components/Gallery.vue new file mode 100644 index 0000000000..e5cbed2c77 --- /dev/null +++ b/docs/src/components/Gallery.vue @@ -0,0 +1,39 @@ + + + + + + + \ No newline at end of file diff --git a/docs/src/components/GalleryImage.vue b/docs/src/components/GalleryImage.vue new file mode 100644 index 0000000000..13be515cac --- /dev/null +++ b/docs/src/components/GalleryImage.vue @@ -0,0 +1,133 @@ + + + + + \ No newline at end of file diff --git a/docs/src/public/blas_optimizations.jpg b/docs/src/public/blas_optimizations.jpg new file mode 100644 index 0000000000..d615fe7b46 Binary files /dev/null and b/docs/src/public/blas_optimizations.jpg differ diff --git a/docs/src/public/gravitational_waveform.png b/docs/src/public/gravitational_waveform.png new file mode 100644 index 0000000000..39ba221401 Binary files /dev/null and b/docs/src/public/gravitational_waveform.png differ diff --git a/docs/src/public/hypernet.jpg b/docs/src/public/hypernet.jpg new file mode 100644 index 0000000000..7539f2f86e Binary files /dev/null and b/docs/src/public/hypernet.jpg differ diff --git a/docs/src/public/lstm-illustrative.webp b/docs/src/public/lstm-illustrative.webp new file mode 100644 index 0000000000..d5353deeb9 Binary files /dev/null and b/docs/src/public/lstm-illustrative.webp differ diff --git a/docs/src/assets/lux-logo-dark.svg b/docs/src/public/lux-logo-dark.svg similarity index 100% rename from docs/src/assets/lux-logo-dark.svg rename to docs/src/public/lux-logo-dark.svg diff --git a/docs/src/assets/lux-logo.svg b/docs/src/public/lux-logo.svg similarity index 100% rename from docs/src/assets/lux-logo.svg rename to docs/src/public/lux-logo.svg diff --git a/docs/src/public/mlp.webp b/docs/src/public/mlp.webp new file mode 100644 index 0000000000..62446654d6 Binary files /dev/null and b/docs/src/public/mlp.webp differ diff --git a/docs/src/public/mnist.jpg b/docs/src/public/mnist.jpg new file mode 100644 index 0000000000..07ff1edd03 Binary files /dev/null and b/docs/src/public/mnist.jpg differ diff --git a/docs/src/public/neural-sde.png b/docs/src/public/neural-sde.png new file mode 100644 index 0000000000..90cc19d23d Binary files /dev/null and b/docs/src/public/neural-sde.png differ diff --git a/docs/src/public/pinn.gif b/docs/src/public/pinn.gif new file mode 100644 index 0000000000..0f790ecb89 Binary files /dev/null and b/docs/src/public/pinn.gif differ diff --git a/docs/src/public/weather-neural-ode.gif b/docs/src/public/weather-neural-ode.gif new file mode 100644 index 0000000000..34c46737d1 Binary files /dev/null and b/docs/src/public/weather-neural-ode.gif differ diff --git a/docs/src/tutorials/index.md b/docs/src/tutorials/index.md index 0092a7608d..36b4afb4f9 100644 --- a/docs/src/tutorials/index.md +++ b/docs/src/tutorials/index.md @@ -1,145 +1,126 @@ ```@raw html ---- -layout: page ---- + - - - - - - - - - - - - - - - - - - - - +# Tutorials + +## Beginner Tutorials + + + +## Intermediate Tutorials + + + +## Advanced Tutorials + + + +## Selected 3rd Party Tutorials + +::: warning + +These tutorials are developed by the community and may not be up-to-date with the latest +version of `Lux.jl`. Please refer to the official documentation for the most up-to-date +information. + +Please open an issue (ideally both at `Lux.jl` and at the downstream linked package) if any +of them are non-functional and we will try to get them updated. + +::: + + + + +::: tip + +If you found an amazing tutorial showcasing `Lux.jl` online, or wrote one yourself, please +open an issue or PR to add it to the list! +::: ``` diff --git a/docs/tutorials.jl b/docs/tutorials.jl index 18d6c7affc..1eb7013c80 100644 --- a/docs/tutorials.jl +++ b/docs/tutorials.jl @@ -39,21 +39,17 @@ try withenv("JULIA_DEBUG" => "Literate", "PKG_LOG_PATH" => pkg_log_path, "LUX_PATH" => lux_path, "JULIA_CUDA_HARD_MEMORY_LIMIT" => "$(CUDA_MEMORY_LIMIT)%", - "OUTPUT_DIRECTORY" => joinpath(OUTPUT, d), - "EXAMPLE_PATH" => p_, "EXAMPLE_NAME" => name, - "JULIA_NUM_THREADS" => Threads.nthreads()) do - cmd = `$(Base.julia_cmd()) --color=yes --project=$(tutorial_proj) -e \ + "OUTPUT_DIRECTORY" => joinpath(OUTPUT, d), "EXAMPLE_PATH" => p_, + "EXAMPLE_NAME" => name, "JULIA_NUM_THREADS" => Threads.nthreads(), + "JULIA_PKG_PRECOMPILE_AUTO" => 0) do + cmd = `$(Base.julia_cmd()) --color=yes --startup-file=no --project=$(tutorial_proj) -e \ 'using Pkg; io=open(ENV["PKG_LOG_PATH"], "w"); Pkg.develop(; path=ENV["LUX_PATH"], io); Pkg.instantiate(; io); - Pkg.precompile(; io); - eval(Meta.parse("using " * join(keys(Pkg.project().dependencies), ", "))); - close(io)'` - @info "Running Command: $(cmd)" - run(cmd) - cmd = `$(Base.julia_cmd()) --color=yes --project=$(tutorial_proj) -e \ - 'using Literate; + close(io); + + using Literate; function preprocess(path, str) new_str = replace(str, "__DIR = @__DIR__" => "__DIR = \"$(dirname(path))\"") appendix_code = "\n# ## Appendix\nusing InteractiveUtils\nInteractiveUtils.versioninfo()\nif @isdefined(LuxCUDA) && CUDA.functional(); println(); CUDA.versioninfo(); end\nif @isdefined(LuxAMDGPU) && LuxAMDGPU.functional(); println(); AMDGPU.versioninfo(); end\nnothing#hide"