A Haskell kernel for IPython.

Related tags

Deep LearningIHaskell
Overview

jupyter IHaskell Build Status Binder

IHaskell

You can now try IHaskell directly in your browser at CoCalc or mybinder.org.

Alternatively, watch a talk and demo showing off IHaskell features.

IHaskell is a kernel for the Jupyter project, which allows you to use Haskell inside Jupyter frontends (including the console and notebook). It currently supports GHC 8.0 through 9.0. For GHC 7.10 support please use the GHC7 tag.

For a tour of some IHaskell features, check out the demo Notebook. More example notebooks are available on the wiki. The wiki also has more extensive documentation of IHaskell features.

IPython Console IPython Notebook

Interactive In-Browser Notebook

Installation

Linux

Some prerequisites; adapt to your distribution.

sudo apt-get install -y python3-pip git libtinfo-dev libzmq3-dev libcairo2-dev libpango1.0-dev libmagic-dev libblas-dev liblapack-dev

Install stack, clone this repository, install Python requirements, install ihaskell, and install the Jupyter kernelspec with ihaskell.

These instructions assume you don't already have Stack or a Jupyter installation, please skip the relevant steps if this is not the case.

curl -sSL https://get.haskellstack.org/ | sh
git clone https://github.com/gibiansky/IHaskell
cd IHaskell
pip3 install -r requirements.txt
# stack install gtk2hs-buildtools # Disabled for now because gtk2hs-buildtools doesn't work with lts-13 yet
stack install --fast
ihaskell install --stack

Run Jupyter.

stack exec jupyter -- notebook

Mac

You need to have Homebrew installed. If you do not have it yet run /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" in your terminal.

You also need the Xcode command line tools. You can install them by running xcode-select --install in the terminal and following the prompts.

These instructions assume you don't already have Stack or a Jupyter installation, please skip the relevant steps if this is not the case.

brew install python3 zeromq libmagic cairo pkg-config haskell-stack pango
git clone https://github.com/gibiansky/IHaskell
cd IHaskell
pip3 install -r requirements.txt
# stack install gtk2hs-buildtools # Disabled for now because gtk2hs-buildtools doesn't work with lts-13 yet
stack install --fast
ihaskell install --stack

If you have Homebrew installed to a custom location, you'd need to specify --extra-include-dirs ${HOMEBREW_PREFIX}/include --extra-lib-dir ${HOMEBREW_PREFIX}/lib to the stack command.

Run Jupyter.

stack exec jupyter -- notebook

Tested on macOS Sierra (10.12.6)

Windows

IHaskell does not support Windows, however it can be used on Windows 10 via Windows Subsystem for Linux (WSL). If WSL is not installed, follow the Installation Guide for Windows 10. The following assumes that Ubuntu is picked as the Linux distribution.

In the Ubuntu app, follow the steps above for Linux.

Jupyter Notebook is now ready to use. In the Ubuntu app, launch a Notebook Server, without opening the notebook in a browser:

jupyter notebook --no-browser

Returning to Windows 10, open a browser and copy and paste the URL output in the step above (the token will differ).

Or copy and paste one of these URLs:
     http://localhost:8888/?token=9ca8a725ddb1fdded176d9e0e675ba557ebb5fbef6c65fdf

Tested on Windows 10 (build 18362.175) with Ubuntu 18.04 on WSL

Alternatively, install Virtualbox, install Ubuntu or another Linux distribution, and proceed with the install instructions.

Docker

To quickly run a Jupyter notebook with the IHaskell kernel, try the Dockerfile in the top directory.

docker build -t ihaskell:latest .
docker run --rm -p 8888:8888 ihaskell:latest

Or use the continuously updated Docker image on Docker Hub.

docker run --rm -p 8888:8888 gibiansky/ihaskell

In order to mount your own local files into the Docker container use following command:

docker run --rm -p 8888:8888 -v "$PWD":/home/jovyan/src gibiansky/ihaskell

Be aware that the directory you're mounting must contain a stack.yaml file. A simple version would be:

resolver: lts-16.23
packages: []

It's recommended to use the same LTS version as the IHaskell image is using itself (as can be seen in its stack.yaml). This guarantees that stack doesn't have to first perform a lengthy installation of GHC before running your notebook.

You can also use the following script to run IHaskell in Docker: https://gist.github.com/brandonchinn178/928d6137bfd17961b9584a8f96c18827

Nix

If you have the nix package manager installed, you can create an IHaskell notebook environment with one command. For example:

$ /bin/jupyter notebook">
$ nix-build -I nixpkgs=https://github.com/NixOS/nixpkgs-channels/archive/nixos-20.03.tar.gz release.nix --argstr compiler ghc865 --arg packages "haskellPackages: [ haskellPackages.lens ]"
<result path>
$ <result path>/bin/jupyter notebook

It might take a while the first time, but subsequent builds will be much faster. You can use the https://ihaskell.cachix.org cache for prebuilt artifacts.

The IHaskell display modules are not loaded by default and have to be specified as additional packages:

$ nix-build -I nixpkgs=https://github.com/NixOS/nixpkgs-channels/archive/nixos-20.03.tar.gz release.nix --argstr compiler ghc865 --arg packages "haskellPackages: [ haskellPackages.ihaskell-blaze haskellPackages.ihaskell-charts ]"

For more examples of using IHaskell with Nix, see https://github.com/vaibhavsagar/notebooks.

Troubleshooting

Where are my packages? (IHaskell + Stack)

Stack manages separate environments for every package. By default your notebooks will only have access to a few packages that happen to be required for IHaskell. To make packages available add them to the stack.yaml in the IHaskell directory and run stack install --fast.

Packages should be added to the packages: section and can take the following form (reproduced here from the stack documentation). If you've already installed a package by stack install you can simply list its name even if it's local.

- package-name
- location: .
- location: dir1/dir2
- location: https://example.com/foo/bar/baz-0.0.2.tar.gz
- location: http://github.com/yesodweb/wai/archive/2f8a8e1b771829f4a8a77c0111352ce45a14c30f.zip
- location:
    git: [email protected]:commercialhaskell/stack.git
    commit: 6a86ee32e5b869a877151f74064572225e1a0398
- location:
    hg: https://example.com/hg/repo
    commit: da39a3ee5e6b4b0d3255bfef95601890afd80709

The kernel keeps dying (IHaskell + Stack)

The default instructions globally install IHaskell with support for only one version of GHC. If you've e.g. installed an lts-10 IHaskell and are using it with an lts-9 project the mismatch between GHC 8.2 and GHC 8.0 will cause this error. Stack also has the notion of a 'global project' located at ~/.stack/global-project/ and the stack.yaml for that project should be on the same LTS as the version of IHaskell installed to avoid this issue.

Comments
  • IPython 4.0 not supported

    IPython 4.0 not supported

    Starting the kernel with IPython 4.0 gives the following error:

    ihaskell: main/Main.hs:(66,1)-(73,35): Non-exhaustive patterns in function ihaskell

    When run from IPython (4.0) notebook, the kernel is reported as dead but seems to execute cells perfectly useably.

    opened by jbcoe 43
  • IHaskell notebook and console don't redirect input to GHCi

    IHaskell notebook and console don't redirect input to GHCi

    When I run IHaskell notebook I can see tips and suggestions on functions signatures or evaluate :info command, but I can't evaluate cells. It just swallows them silently. When running IHaskell console it's even worse, it freezes in cell In [1]: and trying to kill it with Ctrl+C brings again an input prompt of the console. I am using Ubuntu 12.04. How can I figure out what's going wrong?

    opened by menchyshyn 37
  • ihaskell binary from `stack install` not independent of .stack root, not destroot'd

    ihaskell binary from `stack install` not independent of .stack root, not destroot'd

    I'm trying to create a MacPorts build of IHaskell here: https://github.com/macports/macports-ports/pull/4706

    The ihaskell binary produced by stack install does not appear to be independent of the .stack directory, as I believe it should be.

    When I launch jupyter notebook and initiate a Haskell kernel, stack jumps in and starts downloading ghc, and the kernel fails.

    Is it possible to produce a binary independent of the .stack directory?

    The build is produced with:

    stack install --system-ghc …
    

    and the file /opt/local/share/jupyter/kernels/haskell/kernel.json says:

    {"display_name":"Haskell","argv":["/opt/local/bin/ihaskell","kernel","{connection_file}","--ghclib","/opt/local/lib/ghc-8.6.5","+RTS","-M3g","-N2","-RTS","--stack"],"language":"haskell"}
    

    The broader reason for this is that all MacPorts installs are done through a destroot, and destrooting a common .stack for many independent stack projects won't work.

    The strategy that works for other stack projects is to build the binary with a temporary .stack, then throw it away after the working binary is created.

    This strategy isn't working with IHaskell for the reasons above.

    opened by essandess 34
  • Recent Stack LTS versions don't seem to work

    Recent Stack LTS versions don't seem to work

    I installed ihaskell completely from scratch using stack LTS 5.2 on two different machines running debian x86_64:

    stack install --no-system-ghc ihaskell && stack exec --no-system-ghc ihaskell -- install --stack && stack exec --no-system-ghc jupyter -- notebook --debug --no-browser --ip=<IP address>
    

    I encountered the same error in both cases:

    ihaskell: /home/peddie/.stack/snapshots/x86_64-linux/lts-5.2/7.10.3/lib/x86_64-linux-ghc-7.10.3/cryptonite-0.10-9z0j8QI27Av2VIWw0mEkTO/libHScryptonite-0.10-9z0j8QI27Av2VIWw0mEkTO.a: unhandled ELF relocation(RelA) type 42
    
    ihaskell: ihaskell: unable to load package `cryptonite-0.10'
    [I 22:50:20.392 NotebookApp] KernelRestarter: restarting kernel (1/5)
    

    stack exec --no-system-ghc ghc-pkg -- list has no trouble locating cryptonite. stack exec --no-system-ghc ghci has no trouble loading and running functions from Crypto.Random.EntropyPool (to choose a random example).

    My kernel.json file:

    [email protected]:~$ cat /home/peddie/.local/share/jupyter/kernels/haskell/kernel.json
    {"display_name":"Haskell","argv":["/home/peddie/.stack/snapshots/x86_64-linux/lts-5.2/7.10.3/bin/ihaskell","kernel","{connection_file}","--ghclib","/home/peddie/.stack/programs/x86_64-linux/ghc-7.10.3/lib/ghc-7.10.3/","--stack"],"language":"haskell"}
    

    This file was created with /opt/ghc/7.10.3/lib/ghc-7.10.3/ in the --ghclib field of kernel.json, but the error did not go away when I manually replaced it with the path to stack's libs.

    EDIT: I forgot a critical piece of information: this issue does not occur when building with stackage LTS 5.1, which also uses cryptonite-0.10.

    opened by peddie 33
  • IHasell not finding some packages

    IHasell not finding some packages

    I recently switched from using Haskell Plarform to using Homebrew for managing my Haskell installation. This change was without issues for GHCi but IHaskell is now unable to find many packages. For example if I

    import Data.List.Split 
    

    I get

    Failed to load interface for ‘Data.List.Split’

    even though the same import statement works fine in GHCi.

    Is there something I can do to fix this? What would be causing IHaskell to be looking in the wrong location for installed packages?


    FWIW, this occurred following an upgrade from OS X 10.10 to 10.11.

    opened by orome 32
  • cabal cannot find libzmq

    cabal cannot find libzmq

    when running cabal install ihaskell I get the following error regardless of which zeromq installation procedure I use (homebrew and github):

    Resolving dependencies...
    Configuring zeromq4-haskell-0.6.1...
    cabal: The pkg-config package libzmq version >=4.0 && <5.0 is required but it
    could not be found.
    Failed to install zeromq4-haskell-0.6.1
    cabal: Error: some packages failed to install:
    ihaskell-0.4.2.0 depends on zeromq4-haskell-0.6.1 which failed to install.
    zeromq4-haskell-0.6.1 failed during the configure step. The exception was:
    ExitFailure 1
    

    The path to my libzmq folder is in ~/.cabal/bin/libzmq.

    opened by jigrinc 31
  • Support libraries don't seem to be working on newest version

    Support libraries don't seem to be working on newest version

    I may just be doing this wrong, but when a code cell evaluates to something that should be displayed nicely (like a JuicyPixels Image), it just says

    Unshowable:Image Pixel8
    No instance for (Show (Image Pixel8)) arising from a use of ‘print’
    In a stmt of an interactive GHCi command: print it
    

    I already did cabal install ihaskell-juicypixels.

    opened by wyager 28
  • Install not working on os x due to happy

    Install not working on os x due to happy

    I installed haskell platform through homebrew I ran:

    pip3 install jupiter
    git clone http://www.github.com/gibiansky/IHaskell
    cd IHaskell
    ./macos-install.sh
    

    Jupiter works but IHaskell errors

    Downloading the latest package list from hackage.haskell.org
    Skipping download: Local and remote files match.
    Resolving dependencies...
    Downloading alex-3.1.7...
    Downloading happy-1.19.5...
    Configuring alex-3.1.7...
    Configuring happy-1.19.5...
    Building happy-1.19.5...
    Building alex-3.1.7...
    Failed to install happy-1.19.5
    Build log ( /Users/<User>/.cabal/logs/happy-1.19.5.log ):
    [1 of 1] Compiling Main             ( /var/folders/_m/1h8dd_fd3dx3qvtq87_c4q480000gn/T/cabal-tmp-85242/happy-1.19.5/dist/setup/setup.hs, /var/folders/_m/1h8dd_fd3dx3qvtq87_c4q480000gn/T/cabal-tmp-85242/happy-1.19.5/dist/setup/Main.o )
    Linking /var/folders/_m/1h8dd_fd3dx3qvtq87_c4q480000gn/T/cabal-tmp-85242/happy-1.19.5/dist/setup/setup ...
    Configuring happy-1.19.5...
    Building happy-1.19.5...
    Preprocessing executable 'happy' for happy-1.19.5...
    <command line>: cannot satisfy -package-id mtl-2.2.1-b6b36d751642fde56f037818eb788105
        (use -v for more information)
    Failed to install alex-3.1.7
    Build log ( /Users/<User>/.cabal/logs/alex-3.1.7.log ):
    [1 of 1] Compiling Main             ( /var/folders/_m/1h8dd_fd3dx3qvtq87_c4q480000gn/T/cabal-tmp-85241/alex-3.1.7/dist/setup/setup.hs, /var/folders/_m/1h8dd_fd3dx3qvtq87_c4q480000gn/T/cabal-tmp-85241/alex-3.1.7/dist/setup/Main.o )
    Linking /var/folders/_m/1h8dd_fd3dx3qvtq87_c4q480000gn/T/cabal-tmp-85241/alex-3.1.7/dist/setup/setup ...
    Configuring alex-3.1.7...
    Building alex-3.1.7...
    Preprocessing executable 'alex' for alex-3.1.7...
    <command line>: cannot satisfy -package-id QuickCheck-2.8.1-8f3828a4d4d9dac78c5d3db525b2f0fe
        (use -v for more information)
    cabal: Error: some packages failed to install:
    alex-3.1.7 failed during the building phase. The exception was:
    ExitFailure 1
    happy-1.19.5 failed during the building phase. The exception was:
    ExitFailure 1
    
    opened by michaelmesser 25
  • Rewrite Docker image

    Rewrite Docker image

    Reimplements Dockerfile with the following changes:

    • Uses the haskell Docker image as a base image, so we don't have to worry about installing Stack
    • Uses multistage builds, to avoid bulking the final image with compile-time artifacts.
      • Currently, the gibiansky/ihaskell:202108170429266e69c2 image is 6.26 GB on my computer, after a docker pull
      • This PR builds a docker image that's 1.93 GB. Note: the haskell:8.10.4 base image we're using is 1.52 GB, so this PR builds a docker image that only adds 400 MB to the base image!
      • This should greatly improve download times
    • Writes ~/.stack/global-project/stack.yaml to have the same resolver as the in-repo stack.yaml file (resolves https://github.com/gibiansky/IHaskell/issues/1251#issuecomment-899985184)
    • Adds a --env-file flag, to fix using stack from the haskell base image (the stack exec env command called here was reinstalling GHC; didn't seem to be an easy way to tell it to use --system-ghc)

    TODO:

    • [ ] Fix syntax highlighting
      • Syntax highlighting is no longer working. I'm looking at the old version of the Dockerfile, and I'm not sure how it does syntax highlighting, since it's not COPYing the jupyterlab-ihaskell directory. @vaibhavsagar @gibiansky @gregwebs do you know how the current Docker image gets syntax highlighting? (Possibly related: https://github.com/gibiansky/IHaskell/issues/1199)
    opened by brandon-leapyear 23
  • src/IHaskell/Eval/Evaluate.hs:404:16:

    src/IHaskell/Eval/Evaluate.hs:404:16:

    (ihaskell-venv) [[email protected] zeromq-4.0.5]# PKG_CONFIG_PATH=/e2e/lib/zeromq4/lib/pkgconfig:/e2e/lib/zeromq4/lib/pkgconfig:/usr/share/licenses/pkgconfig:/usr/share/pkgconfig:/usr/share/doc/pkgconfig cabal install ihaskell --extra-lib-dirs=/e2e/lib/zeromq4/lib --extra-include-dirs=/e2e/lib/zeromq4/include

    ...

    Loading package MissingH-1.3.0.1 ... linking ... done. [16 of 18] Compiling IHaskell.Eval.Evaluate ( src/IHaskell/Eval/Evaluate.hs, dist/build/IHaskell/Eval/Evaluate.o )

    src/IHaskell/Eval/Evaluate.hs:404:16: Couldn't match type FilePath' with[Char]' Expected type: GHC.IO.FilePath Actual type: FilePath In the first argument of writeFile', namely(fpFromString $ directory ++ filename)' In a stmt of a 'do' block: writeFile (fpFromString $ directory ++ filename) contents In the second argument of ($)', namelydo { createDirectoryIfMissing True directory; writeFile (fpFromString $ directory ++ filename) contents }'

    src/IHaskell/Eval/Evaluate.hs:566:40: Couldn't match type FilePath' with[Char]' Expected type: GHC.IO.FilePath Actual type: FilePath In the return type of a call of fpFromString' In the second argument of($)', namely `fpFromString filename' In a stmt of a 'do' block: contents <- readFile $ fpFromString filename Failed to install ihaskell-0.6.0.0 cabal: Error: some packages failed to install: ihaskell-0.6.0.0 failed during the building phase. The exception was: ExitFailure 1

    opened by marmalodak 22
  • Package IHaskell [$25 awarded]

    Package IHaskell [$25 awarded]

    This is a while out, but it might be nice to package IHaskell nicely for end-users that aren't as experienced with Haskell.

    Other ideas:

    • Make a Docker build (https://github.com/gibiansky/IHaskell/issues/136) so that it is easy to install on any Linux distribution
    • Package as Mac app (that can hang around in the task bar and have it's own window instead of using a browser, by having our own webview or something.)
    • Package for windows like Sage does (see here)
    • Package for package managers?
      • Homebrew?
      • Debian's apt-get?

    Not sure which of these are worthwhile, but might be a good effort to get IHaskell and Haskell out to a wider audience.

    The $25 bounty on this issue has been claimed at Bountysource.

    bounty 
    opened by gibiansky 22
  • Add -dynamic back in; removal broke IHaskell

    Add -dynamic back in; removal broke IHaskell

    This commit removed -dynamic as a default flag https://github.com/IHaskell/IHaskell/commit/2891bc8498ce12ae2677d72c7252e2623158e378

    The results of this change break IHaskell in two ways. First, it now links every package available statically on startup. This is fine for small projects. In a large project though, with 200 packages, I gave up after 15 minutes. Second, many of us use IHaskell with packages that rely on shared libraries. This stopped working entirely.

    There's a related long discussion here https://github.com/IHaskell/IHaskell/pull/1252/files#diff-30f4411ae6041ebe629c055ae5c4407e47989f719a5733416bfa23454270ba65R130

    The suggested solution is that users should add dynamic in this case. But there is simply no way for users to figure this out.

    I had to run strace and notice among its 100Mb of output that ihaskell is stuck loading one object file after another and look at gdb to confirm that it's stuck in the linker pinning the CPU to 100%. No one is going to do this and then realize that -dynamic is needed in IHaskell.

    But it's even worse for a small project. You will inexplicably get errors about shared libraries. And they'll be lazy! So most of the code works, until you trip over some code that uses the shared library and then you get an incredibly cryptic error about symbols missing. Users have absolutely no way of tracking this back to IHaskell, never mind realizing that they need to add -dynamic.

    This was done to make building docker images simpler. https://github.com/IHaskell/IHaskell/pull/1252

    All of this is a horrible cost to pay for some convenience when building docker images. It breaks the common case for a slightly more convenient corner case. The downside of this pull request is it breaks building the Docker images, would you mind fixing that @brandon-leapyear? You seemed to have a version that copies over the right files.

    I suggest we add -dynamic back in. @junjihashimoto suggested the same in the discussion above.

    opened by abarbu 4
  • Submit all packages to Stackage

    Submit all packages to Stackage

    I wonder is there any specific reason all those ihaskell-* packages are not submitted to Stackage?

    In my workflow, I build and install a version of IHaskell locally, and also have multiple projects which need IHaskell. Each project has different dependencies, but they all have to be careful to use exactly the same versions for ihaskell-* packages (by including a rather long section in stack.yaml). It's difficult to maintain, and when I want IHaskell on a new machine, I also have to be careful to build and install the exact same version all my projects use. If all these packages' versions are locked in a Stackage snapshot, it will be far easier to simply use the same Stackage LTS version for all my projects.

    opened by SmartHypercube 0
  • "ihaskell: command not found" terminal response in Ubuntu

    When starting "ihaskell install --stack", the terminal gives an error "ihaskell: command not found". Please tell me how it can be fixed?

    opened by WalterVenin 2
  • ‘relayWidgetMessages’ not in scope error after starting kernel

    ‘relayWidgetMessages’ not in scope error after starting kernel

    I got the following error when I started a kernel

    [I 00:16:53.865 NotebookApp] Creating new notebook in
    [I 00:16:54.596 NotebookApp] Kernel started: 8818e04f-cf57-49f7-848b-23868661e6d8, name: haskell
    [W 00:16:54.688 NotebookApp] 404 GET /static/components/codemirror/mode/ihaskell/ihaskell.js (127.0.0.1) 4.710000ms referer=http://localhost:8888/notebooks/Untitled.ipynb?kernel_name=haskell
    [I 00:16:54.801 NotebookApp] Adapting from protocol version 5.0 (kernel 8818e04f-cf57-49f7-848b-23868661e6d8) to 5.3 (client).
    ihaskell: Not in scope: ‘IHaskell.Eval.Widgets.relayWidgetMessages’
    No module named ‘IHaskell.Eval.Widgets’ is imported.
    
    [I 00:16:57.587 NotebookApp] KernelRestarter: restarting kernel (1/5), new random ports
    WARNING:root:kernel 8818e04f-cf57-49f7-848b-23868661e6d8 restarted
    [I 00:17:04.631 NotebookApp] Saving file at /Untitled.ipynb
    

    but after it automatically restarted, the error disappeared and the kernel ran without problems any more. so basically I still can use ihaskell, just the error is weird and a bit annoying. anyway it would be very nice if you could have a look.

    versions:

    • ihaskell: master branch
    • ghcup: v0.1.18.0
    • stack: 2.9.1
    • python: 3.11.0
    • system: wsl ubuntu jammy and I installed ihaskell following the readme
    opened by FelisNivalis 0
  • flake output display package parameters

    flake output display package parameters

    https://github.com/IHaskell/IHaskell/blob/7d0b9b070aa821db1a4d38826e146fd2c41d1c0b/flake.nix#L95-L111

    I would like the Nix Flake to provide a parameterized derivation for a Jupyter environment, where the parameter is a list of the display packages that should be installed.

    It seems like there is not yet a first-class way to do that in Nix, but the discussion is ongoing here. https://github.com/NixOS/nix/issues/4744

    opened by jamesdbrock 0
Releases(0.6)
Owner
Andrew Gibiansky
Andrew Gibiansky
This repository contains an implementation of the Permutohedral Attention Module in Pytorch

Permutohedral_attention_module This repository contains an implementation of the Permutohedral Attention Module

Samuel JOUTARD 26 Nov 27, 2022
Papers about explainability of GNNs

Papers about explainability of GNNs

Dongsheng Luo 236 Jan 04, 2023
Official implementation of the ICLR 2021 paper

You Only Need Adversarial Supervision for Semantic Image Synthesis Official PyTorch implementation of the ICLR 2021 paper "You Only Need Adversarial S

Bosch Research 272 Dec 28, 2022
Contrastive unpaired image-to-image translation, faster and lighter training than cyclegan (ECCV 2020, in PyTorch)

Contrastive Unpaired Translation (CUT) video (1m) | video (10m) | website | paper We provide our PyTorch implementation of unpaired image-to-image tra

1.7k Dec 27, 2022
Implementation of CVAE. Trained CVAE on faces from UTKFace Dataset to produce synthetic faces with a given degree of happiness/smileyness.

Conditional Smiles! (SmileCVAE) About Implementation of AE, VAE and CVAE. Trained CVAE on faces from UTKFace Dataset. Using an encoding of the Smile-s

Raúl Ortega 3 Jan 09, 2022
Human Action Controller - A human action controller running on different platforms.

Human Action Controller (HAC) Goal A human action controller running on different platforms. Fun Easy-to-use Accurate Anywhere Fun Examples Mouse Cont

27 Jul 20, 2022
A new benchmark for Icon Question Answering (IconQA) and a large-scale icon dataset Icon645.

IconQA About IconQA is a new diverse abstract visual question answering dataset that highlights the importance of abstract diagram understanding and c

Pan Lu 24 Dec 30, 2022
[CVPR2021] UAV-Human: A Large Benchmark for Human Behavior Understanding with Unmanned Aerial Vehicles

UAV-Human Official repository for CVPR2021: UAV-Human: A Large Benchmark for Human Behavior Understanding with Unmanned Aerial Vehicle Paper arXiv Res

129 Jan 04, 2023
Source codes for Improved Few-Shot Visual Classification (CVPR 2020), Enhancing Few-Shot Image Classification with Unlabelled Examples

Source codes for Improved Few-Shot Visual Classification (CVPR 2020), Enhancing Few-Shot Image Classification with Unlabelled Examples (WACV 2022) and Beyond Simple Meta-Learning: Multi-Purpose Model

PLAI Group at UBC 42 Dec 06, 2022
Unofficial implementation of Pix2SEQ

Unofficial-Pix2seq: A Language Modeling Framework for Object Detection Unofficial implementation of Pix2SEQ. Please use this code with causion. Many i

159 Dec 12, 2022
🧠 A PyTorch implementation of 'Deep CORAL: Correlation Alignment for Deep Domain Adaptation.', ECCV 2016

Deep CORAL A PyTorch implementation of 'Deep CORAL: Correlation Alignment for Deep Domain Adaptation. B Sun, K Saenko, ECCV 2016' Deep CORAL can learn

Andy Hsu 200 Dec 25, 2022
[CVPR 2021] 'Searching by Generating: Flexible and Efficient One-Shot NAS with Architecture Generator'

[CVPR2021] Searching by Generating: Flexible and Efficient One-Shot NAS with Architecture Generator Overview This is the entire codebase for the paper

35 Dec 01, 2022
State-Relabeling Adversarial Active Learning

State-Relabeling Adversarial Active Learning Code for SRAAL [2020 CVPR Oral] Requirements torch = 1.6.0 numpy = 1.19.1 tqdm = 4.31.1 AL Results The

10 Jul 14, 2022
A Pytorch implementation of MoveNet from Google. Include training code and pre-train model.

Movenet.Pytorch Intro MoveNet is an ultra fast and accurate model that detects 17 keypoints of a body. This is A Pytorch implementation of MoveNet fro

Mr.Fire 241 Dec 26, 2022
Apollo optimizer in tensorflow

Apollo Optimizer in Tensorflow 2.x Notes: Warmup is important with Apollo optimizer, so be sure to pass in a learning rate schedule vs. a constant lea

Evan Walters 1 Nov 09, 2021
Neural Oblivious Decision Ensembles

Neural Oblivious Decision Ensembles A supplementary code for anonymous ICLR 2020 submission. What does it do? It learns deep ensembles of oblivious di

25 Sep 21, 2022
This is a simple framework to make object detection dataset very quickly

FastAnnotation Table of contents General info Requirements Setup General info This is a simple framework to make object detection dataset very quickly

Serena Tetart 1 Jan 24, 2022
An implementation on "Curved-Voxel Clustering for Accurate Segmentation of 3D LiDAR Point Clouds with Real-Time Performance"

Lidar-Segementation An implementation on "Curved-Voxel Clustering for Accurate Segmentation of 3D LiDAR Point Clouds with Real-Time Performance" from

Wangxu1996 135 Jan 06, 2023
Code to accompany the paper "Finding Bipartite Components in Hypergraphs", which is published in NeurIPS'21.

Finding Bipartite Components in Hypergraphs This repository contains code to accompany the paper "Finding Bipartite Components in Hypergraphs", publis

Peter Macgregor 5 May 06, 2022
Implementation of the state of the art beat-detection, downbeat-detection and tempo-estimation model

The ISMIR 2020 Beat Detection, Downbeat Detection and Tempo Estimation Model Implementation. This is an implementation in TensorFlow to implement the

Koen van den Brink 1 Nov 12, 2021