Course content and resources for the AIAIART course.

Overview

AIAIART course

This repo will house the notebooks used for the AIAIART course. Part 1 (first four lessons) ran via Discord in September/October 2021. Part 2 started Saturday April 9th at 4pm UTC. Join the Discord linked below if you'd like to join the chat and get reminders for the livestream! Streams run on https://www.twitch.tv/johnowhitaker and more concise videos tend to go up on YouTube the following day.

The videos for past lessons: https://www.youtube.com/playlist?list=PL23FjyM69j910zCdDFVWcjSIKHbSB7NE8

Notebooks:

Feel free to reach out to me @johnowhitaker on Twitter with feedback, questions or requests. And come join our discord to share your work and chat with others doing similar projects: https://discord.gg/vSjhr8xb4g. The Discord is the best way to hear about upcoming lessons and livestreams.

You might also like...
 Boosting Monocular Depth Estimation Models to High-Resolution via Content-Adaptive Multi-Resolution Merging
Boosting Monocular Depth Estimation Models to High-Resolution via Content-Adaptive Multi-Resolution Merging

Boosting Monocular Depth Estimation Models to High-Resolution via Content-Adaptive Multi-Resolution Merging This repository contains an implementation

Official Implementation of CoSMo: Content-Style Modulation for Image Retrieval with Text Feedback
Official Implementation of CoSMo: Content-Style Modulation for Image Retrieval with Text Feedback

CoSMo.pytorch Official Implementation of CoSMo: Content-Style Modulation for Image Retrieval with Text Feedback, Seungmin Lee*, Dongwan Kim*, Bohyung

This script runs neural style transfer against the provided content image.
This script runs neural style transfer against the provided content image.

Neural Style Transfer Content Style Output Description: This script runs neural style transfer against the provided content image. The content image m

Save-restricted-v-3 - Save restricted content Bot For telegram

Save restricted content Bot Contact: Telegram A stable telegram bot to get restr

List of content farm sites like g.penzai.com.

内容农场网站清单 Google 中文搜索结果包含了相当一部分的内容农场式条目,比如「小 X 知识网」「小 X 百科网」。此种链接常会 302 重定向其主站,页面内容为自动生成,大量堆叠关键字,揉杂一些爬取到的内容,完全不具可读性和参考价值。 尤为过分的是,该类网站可能有成千上万个分身域名被 Goog

Python utility to generate filesystem content for Obsidian.
Python utility to generate filesystem content for Obsidian.

Security Vault Generator Quickly parse, format, and output common frameworks/content for Obsidian.md. There is a strong focus on MITRE ATT&CK because

A curated list of neural network pruning resources.

A curated list of neural network pruning and related resources. Inspired by awesome-deep-vision, awesome-adversarial-machine-learning, awesome-deep-learning-papers and Awesome-NAS.

A collection of resources on GAN Inversion.

This repo is a collection of resources on GAN inversion, as a supplement for our survey

Resources for the
Resources for the "Evaluating the Factual Consistency of Abstractive Text Summarization" paper

Evaluating the Factual Consistency of Abstractive Text Summarization Authors: Wojciech Kryściński, Bryan McCann, Caiming Xiong, and Richard Socher Int

Comments
  • Incorrect annotation of shapes in Unet in lesson #7?

    Incorrect annotation of shapes in Unet in lesson #7?

    Hi! It's me again.

    I'm creating an annotated version of the UNet in lesson #7 (diffusion models). I'm adding more comments + assertions for the shapes of all inputs/outputs/weights/intermediate steps.

    While doing this, I noticed there might be a mistake in some of the comments?

    Here's the code that runs the UNet on dummy data (from the lesson):

    # A dummy batch of 10 3-channel 32px images
    x = torch.randn(10, 3, 32, 32)
    
    # 't' - what timestep are we on
    t = torch.tensor([50], dtype=torch.long)
    
    # Define the unet model
    unet = UNet()
    
    # The foreward pass (takes both x and t)
    model_output = unet(x, t)
    

    Inside the actual UNet this is the forwad pass

        def forward(self, x: torch.Tensor, t: torch.Tensor):
            """
            * `x` has shape `[batch_size, in_channels, height, width]`
            * `t` has shape `[batch_size]`
            """
    
            # Get time-step embeddings
            t = self.time_emb(t)
    

    It says that the shape of t is [batch_size]. But the shape of t is 1, which is to be expected if we look at the code that is testing the UNet.

    Specifically, the assertion:

            batch_size = x.shape[0]
            print(t.shape)
            assert t.shape[0] == batch_size
    

    fails.

    I'm not sure exactly what's going on here. My hypothesis is as follows: The UNet is being trained on a batch of images. Each image in the batch should be accompanied by its own time step number. However, it looks like only a single time-step is being passed into the UNet.

    Somewhere along the line, this time-step is being accidentally broad-casted by Pytorch to fit the batch dimension and being used as the time-step for all images.

    Does that sound correct to you?

    opened by vedantroy 4
  • Explanation of img_to_tensor in lesson 7?

    Explanation of img_to_tensor in lesson 7?

    Hi! Thanks for making these notebooks open-source. I'm trying to rewrite your code from this notebook in jax for practice. Happy to submit a PR with the end result if you'd find that useful.

    I was wondering if you could explain the following method from lesson 7:

    def img_to_tensor(im):
      return torch.tensor(np.array(im.convert('RGB'))/255).permute(2, 0, 1).unsqueeze(0) * 2 - 1
    

    I'm a bit confused about why we need the permute. I'm also a bit confused since it seems like we can omit the unsqueeze etc. and the code still works fine.

    I would really appreciate it if you had a moment to give a quick explanation. Thanks!

    opened by vedantroy 4
  • Question about notebook 7

    Question about notebook 7

    Hi! Thanks for making this great learning resource for free. I was wondering, is there a reason in notebook #7 that you do c = consts.gather(-1, t) instead of c = consts[t], given that it seems like you're indexing into a 1-dimensional tensor of beta values?

    opened by vedantroy 1
Owner
Jonathan Whitaker
Data Scientist and independent researcher based in Zimbabwe.
Jonathan Whitaker
Dungeons and Dragons randomized content generator

Component based Dungeons and Dragons generator Supports Entity/Monster Generation NPC Generation Weapon Generation Encounter Generation Environment Ge

Zac 3 Dec 4, 2021
Pytorch implementation of the paper "Enhancing Content Preservation in Text Style Transfer Using Reverse Attention and Conditional Layer Normalization"

Pytorch implementation of the paper "Enhancing Content Preservation in Text Style Transfer Using Reverse Attention and Conditional Layer Normalization"

Dongkyu Lee 4 Sep 18, 2022
🍷 Gracefully claim weekly free games and monthly content from Epic Store.

EPIC 免费人 ?? 优雅地领取 Epic 免费游戏 Introduction ?? Epic AwesomeGamer 帮助玩家优雅地领取 Epic 免费游戏。 使用 「Epic免费人」可以实现如下需求: get:搬空游戏商店,获取所有常驻免费游戏与免费附加内容; claim:领取周免游戏及其免

null 571 Dec 28, 2022
A curated list of programmatic weak supervision papers and resources

A curated list of programmatic weak supervision papers and resources

Jieyu Zhang 118 Jan 2, 2023
Code and data for ACL2021 paper Cross-Lingual Abstractive Summarization with Limited Parallel Resources.

Multi-Task Framework for Cross-Lingual Abstractive Summarization (MCLAS) The code for ACL2021 paper Cross-Lingual Abstractive Summarization with Limit

Yu Bai 43 Nov 7, 2022
A curated list of awesome resources related to Semantic Search🔎 and Semantic Similarity tasks.

A curated list of awesome resources related to Semantic Search?? and Semantic Similarity tasks.

null 224 Jan 4, 2023
A list of awesome PyTorch scholarship articles, guides, blogs, courses and other resources.

Awesome PyTorch Scholarship Resources A collection of awesome PyTorch and Python learning resources. Contributions are always welcome! Course Informat

Arnas Gečas 302 Dec 3, 2022
A curated list of resources for Image and Video Deblurring

A curated list of resources for Image and Video Deblurring

Subeesh Vasu 1.7k Jan 1, 2023
Code and data for ACL2021 paper Cross-Lingual Abstractive Summarization with Limited Parallel Resources.

Multi-Task Framework for Cross-Lingual Abstractive Summarization (MCLAS) The code for ACL2021 paper Cross-Lingual Abstractive Summarization with Limit

Yu Bai 43 Nov 7, 2022
This Repo is the official CUDA implementation of ICCV 2019 Oral paper for CARAFE: Content-Aware ReAssembly of FEatures

Introduction This Repo is the official CUDA implementation of ICCV 2019 Oral paper for CARAFE: Content-Aware ReAssembly of FEatures. @inproceedings{Wa

Jiaqi Wang 42 Jan 7, 2023