notebooks dynamic rendering

This commit is contained in:
Tom Heaton
2024-06-18 11:47:46 +01:00
parent 9b89499b75
commit f91e878eef
3 changed files with 370 additions and 220 deletions

View File

@@ -1,7 +1,7 @@
# ignore these directories when formatting the repo
Blogs
CM20315
CM20315_2023
Notebooks
PDFFigures
Slides
/Blogs
/CM20315
/CM20315_2023
/Notebooks
/PDFFigures
/Slides

View File

@@ -3,12 +3,12 @@ import styled from "styled-components";
export const NotebookContainer = styled.div`
color: #fff;
/* background: #f9f9f9; */
background: ${({lightBg}) => (lightBg ? '#f9f9f9': '#010606')};
background: ${({ lightBg }) => (lightBg ? "#f9f9f9" : "#010606")};
@media screen and (max-width: 768px) {
padding: 100px 0;
}
`
`;
export const NotebookWrapper = styled.div`
display: grid;
@@ -20,18 +20,19 @@ export const NotebookWrapper = styled.div`
margin-left: auto;
padding: 0 24px;
justify-content: center;
`
`;
export const NotebookRow = styled.div`
display: grid;
grid-auto-columns: minmax(auto, 1fr);
align-items: center;
grid-template-areas: ${({imgStart}) => (imgStart ? `'col2 col1'` : `'col1 col2'`)};
grid-template-areas: ${({ imgStart }) => (imgStart ? `'col2 col1'` : `'col1 col2'`)};
@media screen and (max-width: 768px){
grid-template-areas: ${({imgStart}) => (imgStart ? `'col1' 'col2'` : `'col1 col1' 'col2 col2'`)};
@media screen and (max-width: 768px) {
grid-template-areas: ${({ imgStart }) =>
imgStart ? `'col1' 'col2'` : `'col1 col1' 'col2 col2'`};
}
`
`;
export const Column1 = styled.p`
margin-bottom: 15px;
@@ -45,7 +46,7 @@ export const Column1 = styled.p`
@media screen and (max-width: 768px) {
font-size: 10px;
}
`
`;
export const Column2 = styled.p`
margin-bottom: 15px;
@@ -59,13 +60,13 @@ export const Column2 = styled.p`
@media screen and (max-width: 768px) {
font-size: 10px;
}
`
`;
export const TextWrapper = styled.div`
max-width: 540px;
padding-top: 0;
padding-bottom: 0;
`
`;
export const TopLine = styled.p`
color: #57c6d1;
@@ -75,37 +76,37 @@ export const TopLine = styled.p`
letter-spacing: 1.4px;
text-transform: uppercase;
margin-bottom: 16px;
`
`;
export const Heading= styled.h1`
export const Heading = styled.h1`
margin-bottom: 24px;
font-size: 48px;
line-height: 1.1;
font-weight: 600;
color: ${({lightText}) => (lightText ? '#f7f8fa' : '#010606')};
color: ${({ lightText }) => (lightText ? "#f7f8fa" : "#010606")};
@media screen and (max-width: 480px) {
font-size: 32px;
}
`
`;
export const Subtitle = styled.p`
max-width: 440px;
margin-bottom: 35px;
font-size: 18px;
line-height: 24px;
color: ${({darkText})=> (darkText ? '#010606' : '#fff')};
`
color: ${({ darkText }) => (darkText ? "#010606" : "#fff")};
`;
export const BtnWrap = styled.div`
display: flex;
justify-content: flex-start;
`
`;
export const ImgWrap = styled.div`
max-width: 555px;
height: 100%;
`
`;
export const Img = styled.img`
width: 100%;
@@ -117,28 +118,30 @@ export const Img = styled.img`
export const NBLink = styled.a`
text-decoration: none;
color: #57c6d1;;
color: #57c6d1;
font-weight: 300;
margin: 0 2px;
position: relative;
&:before{
&:before {
position: absolute;
margin: 0 auto;
top: 100%;
left: 0;
width: 100%;
height: 2px;
background-color: #57c6d1;;
content: '';
opacity: .3;
background-color: #57c6d1;
content: "";
opacity: 0.3;
-webkit-transform: scaleX(1);
transition-property: opacity, -webkit-transform;
transition-duration: .3s;
transition-property:
opacity,
-webkit-transform;
transition-duration: 0.3s;
}
&:hover:before {
opacity: 1;
-webkit-transform: scaleX(1.05);
}
`
`;

View File

@@ -1,195 +1,342 @@
import img from '../../images/coding.svg'
import { Column1, Column2, Heading, Img, ImgWrap, NBLink, NotebookContainer, NotebookRow, NotebookWrapper, Subtitle, TextWrapper, TopLine } from './NotebookElements'
import img from "../../images/coding.svg";
import {
Column1,
Column2,
Heading,
Img,
ImgWrap,
NBLink,
NotebookContainer,
NotebookRow,
NotebookWrapper,
Subtitle,
TextWrapper,
TopLine,
} from "./NotebookElements";
const notebooks = [
{
text: "Notebook 1.1 - Background mathematics",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap01/1_1_BackgroundMathematics.ipynb",
},
{
text: "Notebook 2.1 - Supervised learning",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap02/2_1_Supervised_Learning.ipynb",
},
{
text: "Notebook 3.1 - Shallow networks I",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap03/3_1_Shallow_Networks_I.ipynb",
},
{
text: "Notebook 3.2 - Shallow networks II",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap03/3_2_Shallow_Networks_II.ipynb",
},
{
text: "Notebook 3.3 - Shallow network regions",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap03/3_3_Shallow_Network_Regions.ipynb",
},
{
text: "Notebook 3.4 - Activation functions",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap03/3_4_Activation_Functions.ipynb",
},
{
text: "Notebook 4.1 - Composing networks",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap04/4_1_Composing_Networks.ipynb",
},
{
text: "Notebook 4.2 - Clipping functions",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap04/4_2_Clipping_functions.ipynb",
},
{
text: "Notebook 4.3 - Deep networks",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap04/4_3_Deep_Networks.ipynb",
},
{
text: "Notebook 5.1 - Least squares loss",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap05/5_1_Least_Squares_Loss.ipynb",
},
{
text: "Notebook 5.2 - Binary cross-entropy loss",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap05/5_2_Binary_Cross_Entropy_Loss.ipynb",
},
{
text: "Notebook 5.3 - Multiclass cross-entropy loss",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap05/5_3_Multiclass_Cross_entropy_Loss.ipynb",
},
{
text: "Notebook 6.1 - Line search",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap06/6_1_Line_Search.ipynb",
},
{
text: "Notebook 6.2 - Gradient descent",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap06/6_2_Gradient_Descent.ipynb",
},
{
text: "Notebook 6.3 - Stochastic gradient descent",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap06/6_3_Stochastic_Gradient_Descent.ipynb",
},
{
text: "Notebook 6.4 - Momentum",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap06/6_4_Momentum.ipynb",
},
{
text: "Notebook 6.5 - Adam",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap06/6_5_Adam.ipynb",
},
{
text: "Notebook 7.1 - Backpropagation in toy model",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap07/7_1_Backpropagation_in_Toy_Model.ipynb",
},
{
text: "Notebook 7.2 - Backpropagation",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap07/7_2_Backpropagation.ipynb",
},
{
text: "Notebook 7.3 - Initialization",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap07/7_3_Initialization.ipynb",
},
{
text: "Notebook 8.1 - MNIST-1D performance",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap08/8_1_MNIST_1D_Performance.ipynb",
},
{
text: "Notebook 8.2 - Bias-variance trade-off",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap08/8_2_Bias_Variance_Trade_Off.ipynb",
},
{
text: "Notebook 8.3 - Double descent",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap08/8_3_Double_Descent.ipynb",
},
{
text: "Notebook 8.4 - High-dimensional spaces",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap08/8_4_High_Dimensional_Spaces.ipynb",
},
{
text: "Notebook 9.1 - L2 regularization",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap09/9_1_L2_Regularization.ipynb",
},
{
text: "Notebook 9.2 - Implicit regularization",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap09/9_2_Implicit_Regularization.ipynb",
},
{
text: "Notebook 9.3 - Ensembling",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap09/9_3_Ensembling.ipynb",
},
{
text: "Notebook 9.4 - Bayesian approach",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap09/9_4_Bayesian_Approach.ipynb",
},
{
text: "Notebook 9.5 - Augmentation",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap09/9_5_Augmentation.ipynb",
},
{
text: "Notebook 10.1 - 1D convolution",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap10/10_1_1D_Convolution.ipynb",
},
{
text: "Notebook 10.2 - Convolution for MNIST-1D",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap10/10_2_Convolution_for_MNIST_1D.ipynb",
},
{
text: "Notebook 10.3 - 2D convolution",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap10/10_3_2D_Convolution.ipynb",
},
{
text: "Notebook 10.4 - Downsampling & upsampling",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap10/10_4_Downsampling_and_Upsampling.ipynb",
},
{
text: "Notebook 10.5 - Convolution for MNIST",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap10/10_5_Convolution_For_MNIST.ipynb",
},
{
text: "Notebook 11.1 - Shattered gradients",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap11/11_1_Shattered_Gradients.ipynb",
},
{
text: "Notebook 11.2 - Residual networks",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap11/11_2_Residual_Networks.ipynb",
},
{
text: "Notebook 11.3 - Batch normalization",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap11/11_3_Batch_Normalization.ipynb",
},
{
text: "Notebook 12.1 - Self-attention",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap12/12_1_Self_Attention.ipynb",
},
{
text: "Notebook 12.2 - Multi-head self-attention",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap12/12_2_Multihead_Self_Attention.ipynb",
},
{
text: "Notebook 12.3 - Tokenization",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap12/12_3_Tokenization.ipynb",
},
{
text: "Notebook 12.4 - Decoding strategies",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap12/12_4_Decoding_Strategies.ipynb",
},
{
text: "Notebook 13.1 - Encoding graphs",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap13/13_1_Graph_Representation.ipynb",
},
{
text: "Notebook 13.2 - Graph classification",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap13/13_2_Graph_Classification.ipynb",
},
{
text: "Notebook 13.3 - Neighborhood sampling",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap13/13_3_Neighborhood_Sampling.ipynb",
},
{
text: "Notebook 13.4 - Graph attention",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap13/13_4_Graph_Attention_Networks.ipynb",
},
{
text: "Notebook 15.1 - GAN toy example",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap15/15_1_GAN_Toy_Example.ipynb",
},
{
text: "Notebook 15.2 - Wasserstein distance",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap15/15_2_Wasserstein_Distance.ipynb",
},
{
text: "Notebook 16.1 - 1D normalizing flows",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap16/16_1_1D_Normalizing_Flows.ipynb",
},
{
text: "Notebook 16.2 - Autoregressive flows",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap16/16_2_Autoregressive_Flows.ipynb",
},
{
text: "Notebook 16.3 - Contraction mappings",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap16/16_3_Contraction_Mappings.ipynb",
},
{
text: "Notebook 17.1 - Latent variable models",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap17/17_1_Latent_Variable_Models.ipynb",
},
{
text: "Notebook 17.2 - Reparameterization trick",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap17/17_2_Reparameterization_Trick.ipynb",
},
{
text: "Notebook 17.3 - Importance sampling",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap17/17_3_Importance_Sampling.ipynb",
},
{
text: "Notebook 18.1 - Diffusion encoder",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap18/18_1_Diffusion_Encoder.ipynb",
},
{
text: "Notebook 18.2 - 1D diffusion model",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap18/18_2_1D_Diffusion_Model.ipynb",
},
{
text: "Notebook 18.3 - Reparameterized model",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap18/18_3_Reparameterized_Model.ipynb",
},
{
text: "Notebook 18.4 - Families of diffusion models",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap18/18_4_Families_of_Diffusion_Models.ipynb",
},
{
text: "Notebook 19.1 - Markov decision processes",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap19/19_1_Markov_Decision_Processes.ipynb",
},
{
text: "Notebook 19.2 - Dynamic programming",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap19/19_2_Dynamic_Programming.ipynb",
},
{
text: "Notebook 19.3 - Monte-Carlo methods",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap19/19_3_Monte_Carlo_Methods.ipynb",
},
{
text: "Notebook 19.4 - Temporal difference methods",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap19/19_4_Temporal_Difference_Methods.ipynb",
},
{
text: "Notebook 19.5 - Control variates",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap19/19_5_Control_Variates.ipynb",
},
{
text: "Notebook 20.1 - Random data",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap20/20_1_Random_Data.ipynb",
},
{
text: "Notebook 20.2 - Full-batch gradient descent",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap20/20_2_Full_Batch_Gradient_Descent.ipynb",
},
{
text: "Notebook 20.3 - Lottery tickets",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap20/20_3_Lottery_Tickets.ipynb",
},
{
text: "Notebook 20.4 - Adversarial attacks",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap20/20_4_Adversarial_Attacks.ipynb",
},
{
text: "Notebook 21.1 - Bias mitigation",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap21/21_1_Bias_Mitigation.ipynb",
},
{
text: "Notebook 21.2 - Explainability",
link: "https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap21/21_2_Explainability.ipynb",
},
];
export default function NotebookSection() {
return (
<>
<NotebookContainer lightBg={false} id='Notebooks'>
<NotebookWrapper>
<NotebookRow imgStart={true}>
<Column1>
<TextWrapper>
<TopLine>Coding exercises</TopLine>
<Heading lightText={true}>Python notebooks covering the whole text</Heading>
<Subtitle darkText={false}>Sixty eight python notebook exercises with missing code to fill in based on the text</Subtitle>
</TextWrapper>
</Column1>
<Column2>
<ImgWrap>
<Img src={img} alt='Car'/>
</ImgWrap>
</Column2>
</NotebookRow>
<NotebookRow>
<Column1>
<ul>
<li> Notebook 1.1 - Background mathematics: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap01/1_1_BackgroundMathematics.ipynb">ipynb/colab</NBLink>
</li>
<li> Notebook 2.1 - Supervised learning: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap02/2_1_Supervised_Learning.ipynb">ipynb/colab</NBLink>
</li>
<li> Notebook 3.1 - Shallow networks I: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap03/3_1_Shallow_Networks_I.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 3.2 - Shallow networks II: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap03/3_2_Shallow_Networks_II.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 3.3 - Shallow network regions: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap03/3_3_Shallow_Network_Regions.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 3.4 - Activation functions: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap03/3_4_Activation_Functions.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 4.1 - Composing networks: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap04/4_1_Composing_Networks.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 4.2 - Clipping functions: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap04/4_2_Clipping_functions.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 4.3 - Deep networks: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap04/4_3_Deep_Networks.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 5.1 - Least squares loss: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap05/5_1_Least_Squares_Loss.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 5.2 - Binary cross-entropy loss: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap05/5_2_Binary_Cross_Entropy_Loss.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 5.3 - Multiclass cross-entropy loss: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap05/5_3_Multiclass_Cross_entropy_Loss.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 6.1 - Line search: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap06/6_1_Line_Search.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 6.2 - Gradient descent: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap06/6_2_Gradient_Descent.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 6.3 - Stochastic gradient descent: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap06/6_3_Stochastic_Gradient_Descent.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 6.4 - Momentum: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap06/6_4_Momentum.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 6.5 - Adam: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap06/6_5_Adam.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 7.1 - Backpropagation in toy model: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap07/7_1_Backpropagation_in_Toy_Model.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 7.2 - Backpropagation: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap07/7_2_Backpropagation.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 7.3 - Initialization: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap07/7_3_Initialization.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 8.1 - MNIST-1D performance: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap08/8_1_MNIST_1D_Performance.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 8.2 - Bias-variance trade-off: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap08/8_2_Bias_Variance_Trade_Off.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 8.3 - Double descent: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap08/8_3_Double_Descent.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 8.4 - High-dimensional spaces: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap08/8_4_High_Dimensional_Spaces.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 9.1 - L2 regularization: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap09/9_1_L2_Regularization.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 9.2 - Implicit regularization: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap09/9_2_Implicit_Regularization.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 9.3 - Ensembling: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap09/9_3_Ensembling.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 9.4 - Bayesian approach: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap09/9_4_Bayesian_Approach.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 9.5 - Augmentation <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap09/9_5_Augmentation.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 10.1 - 1D convolution: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap10/10_1_1D_Convolution.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 10.2 - Convolution for MNIST-1D: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap10/10_2_Convolution_for_MNIST_1D.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 10.3 - 2D convolution: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap10/10_3_2D_Convolution.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 10.4 - Downsampling & upsampling: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap10/10_4_Downsampling_and_Upsampling.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 10.5 - Convolution for MNIST: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap10/10_5_Convolution_For_MNIST.ipynb">ipynb/colab </NBLink>
</li>
</ul>
</Column1>
<Column2>
<NotebookContainer lightBg={false} id="Notebooks">
<NotebookWrapper>
<NotebookRow imgStart={true}>
<Column1>
<TextWrapper>
<TopLine>Coding exercises</TopLine>
<Heading lightText={true}>
Python notebooks covering the whole text
</Heading>
<Subtitle darkText={false}>
Sixty eight python notebook exercises with missing code to fill in
based on the text
</Subtitle>
</TextWrapper>
</Column1>
<Column2>
<ImgWrap>
<Img src={img} alt="Coding" />
</ImgWrap>
</Column2>
</NotebookRow>
<NotebookRow>
<Column1>
<ul>
<li> Notebook 11.1 - Shattered gradients: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap11/11_1_Shattered_Gradients.ipynb">ipynb/colab </NBLink>
{/* render first half of notebooks*/}
{notebooks.slice(0, notebooks.length / 2).map((notebook, index) => (
<li key={index}>
{notebook.text}:{" "}
<NBLink href={notebook.link}>ipynb/colab</NBLink>
</li>
<li> Notebook 11.2 - Residual networks: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap11/11_2_Residual_Networks.ipynb">ipynb/colab </NBLink>
))}
</ul>
</Column1>
<Column2>
<ul>
{/* render second half of notebooks*/}
{notebooks.slice(notebooks.length / 2).map((notebook, index) => (
<li key={index}>
{notebook.text}:{" "}
<NBLink href={notebook.link}>ipynb/colab</NBLink>
</li>
<li> Notebook 11.3 - Batch normalization: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap11/11_3_Batch_Normalization.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 12.1 - Self-attention: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap12/12_1_Self_Attention.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 12.2 - Multi-head self-attention: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap12/12_2_Multihead_Self_Attention.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 12.3 - Tokenization: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap12/12_3_Tokenization.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 12.4 - Decoding strategies: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap12/12_4_Decoding_Strategies.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 13.1 - Encoding graphs: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap13/13_1_Graph_Representation.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 13.2 - Graph classification : <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap13/13_2_Graph_Classification.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 13.3 - Neighborhood sampling: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap13/13_3_Neighborhood_Sampling.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 13.4 - Graph attention: <NBLink
href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap13/13_4_Graph_Attention_Networks.ipynb">ipynb/colab </NBLink>
</li>
<li> Notebook 15.1 - GAN toy example: <NBLink href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap15/15_1_GAN_Toy_Example.ipynb">ipynb/colab </NBLink></li>
<li> Notebook 15.2 - Wasserstein distance: <NBLink href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap15/15_2_Wasserstein_Distance.ipynb">ipynb/colab </NBLink></li>
<li> Notebook 16.1 - 1D normalizing flows: <NBLink href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap16/16_1_1D_Normalizing_Flows.ipynb">ipynb/colab </NBLink></li>
<li> Notebook 16.2 - Autoregressive flows: <NBLink href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap16/16_2_Autoregressive_Flows.ipynb">ipynb/colab </NBLink></li>
<li> Notebook 16.3 - Contraction mappings: <NBLink href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap16/16_3_Contraction_Mappings.ipynb">ipynb/colab </NBLink></li>
<li> Notebook 17.1 - Latent variable models: <NBLink href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap17/17_1_Latent_Variable_Models.ipynb">ipynb/colab </NBLink></li>
<li> Notebook 17.2 - Reparameterization trick: <NBLink href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap17/17_2_Reparameterization_Trick.ipynb">ipynb/colab </NBLink></li>
<li> Notebook 17.3 - Importance sampling: <NBLink href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap17/17_3_Importance_Sampling.ipynb">ipynb/colab </NBLink></li>
<li> Notebook 18.1 - Diffusion encoder: <NBLink href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap18/18_1_Diffusion_Encoder.ipynb">ipynb/colab </NBLink></li>
<li> Notebook 18.2 - 1D diffusion model: <NBLink href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap18/18_2_1D_Diffusion_Model.ipynb">ipynb/colab </NBLink></li>
<li> Notebook 18.3 - Reparameterized model: <NBLink href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap18/18_3_Reparameterized_Model.ipynb">ipynb/colab </NBLink></li>
<li> Notebook 18.4 - Families of diffusion models: <NBLink href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap18/18_4_Families_of_Diffusion_Models.ipynb">ipynb/colab </NBLink></li>
<li> Notebook 19.1 - Markov decision processes: <NBLink href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap19/19_1_Markov_Decision_Processes.ipynb">ipynb/colab </NBLink></li>
<li> Notebook 19.2 - Dynamic programming: <NBLink href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap19/19_2_Dynamic_Programming.ipynb">ipynb/colab </NBLink></li>
<li> Notebook 19.3 - Monte-Carlo methods: <NBLink href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap19/19_3_Monte_Carlo_Methods.ipynb">ipynb/colab </NBLink></li>
<li> Notebook 19.4 - Temporal difference methods: <NBLink href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap19/19_4_Temporal_Difference_Methods.ipynb">ipynb/colab </NBLink></li>
<li> Notebook 19.5 - Control variates: <NBLink href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap19/19_5_Control_Variates.ipynb">ipynb/colab </NBLink></li>
<li> Notebook 20.1 - Random data: <NBLink href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap20/20_1_Random_Data.ipynb">ipynb/colab </NBLink></li>
<li> Notebook 20.2 - Full-batch gradient descent: <NBLink href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap20/20_2_Full_Batch_Gradient_Descent.ipynb">ipynb/colab </NBLink></li>
<li> Notebook 20.3 - Lottery tickets: <NBLink href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap20/20_3_Lottery_Tickets.ipynb">ipynb/colab </NBLink></li>
<li> Notebook 20.4 - Adversarial attacks: <NBLink href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap20/20_4_Adversarial_Attacks.ipynb">ipynb/colab </NBLink></li>
<li> Notebook 21.1 - Bias mitigation: <NBLink href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap21/21_1_Bias_Mitigation.ipynb">ipynb/colab </NBLink></li>
<li> Notebook 21.2 - Explainability: <NBLink href="https://github.com/udlbook/udlbook/blob/main/Notebooks/Chap21/21_2_Explainability.ipynb">ipynb/colab </NBLink></li>
</ul>
</Column2>
</NotebookRow>
</NotebookWrapper>
</NotebookContainer>
</>
)
))}
</ul>
</Column2>
</NotebookRow>
</NotebookWrapper>
</NotebookContainer>
);
}