QICK: Quantum Instrumentation Control Kit

Related tags

Deep Learningqick
Overview

QICK logo

QICK: Quantum Instrumentation Control Kit

The QICK is a kit of firmware and software to use the Xilinx RFSoC to control quantum systems.

It consists of:

Note: The firmware and software here is still very much a work in progress. This is an alpha release. We strive to be consistent with the APIs but cannot guarantee backwards compatibility.

Download and Installation

Follow the quick start guide located here to set up your board, install qick on your board, and run a Jupyter notebook example.

Documentation

The API documentation for QICK is available at: https://qick-docs.readthedocs.io/

The demo notebooks are intended as a tutorial. The first demos explain important features of the QICK system and walk you through how to write working QICK programs. The later demos provide examples of useful measurements you might make with the QICK. We recommend that new users read and understand all of the demos.

Updates

Frequent updates to the QICK firmware and software are made as pull requests. Each pull request will be documented with a description of the notable changes, including any changes that will require you to change your code. We hope that this will help you decide whether or not to update your local code to the latest version. We strive for, but cannot guarantee, bug-free and fully functional pull requests. We also do not guarantee that the demo notebooks will keep pace with every pull request, though we make an effort to update the demos after major API changes.

Tagged releases can be expected periodically. We recommend that everyone should be using at least the most recent release. We guarantee the following for releases:

  • The demo notebooks will be compatible with the QICK library, and will follow our current best recommendations for writing QICK programs.
  • The firmware images for all supported boards will be fully compatible with the library and the demo notebooks.
  • Release notes will summarize the pull request notes and explain both breaking API changes (what you need to change in your code) and improvements (why you should move to the new release).

We recommend that you "watch" this repository on GitHub to get automatic notifications of pull requests and releases.

Related Packages

There is one related package on Github:

Documentation source code: https://github.com/openquantumhardware/qick-docs

Contribute

You are welcome to contribute to QICK development by forking this repository and sending pull requests.

All contributions are expected to be consistent with PEP 8 -- Style Guide for Python Code.

We welcome comments, bug reports, and feature requests via GitHub Issues.

License

The QICK source code is licensed under the MIT license, which you can find in the LICENSE file. The QICK logo was designed by Dr. Christie Chiu.

You are free to use this software, with or without modification, provided that the conditions listed in the LICENSE file are satisfied.

Comments
  • ZCU208 DAC Clocking Issue

    ZCU208 DAC Clocking Issue

    This might be on the edge of applicability for qick-specific issues, but I thought I'd ask just the same. I've both a ZCU216 and ZCU208 in my lab, both with CLK204 and XM655 adapters (both ZCU's are cabled to the CLK104 module the same, and the SMAs on the XM655 are connected the same) The intent is to run qick on the ZCU208 because of our requirements. I've taken the ZCU216 Vivado model and adapted it to the ZCU208 (it was mostly an issue of reducing the number of DACs and adding axis terminators to the tproc and switch IPs where needed). The issue is the DAC clocks aren't being detected as locked. I see the following output from debug that I added in qick.py for both ZCU's:

    ZCU216 list_rf_blocks: configuring DACs and ADCs to list Adding DAC 2 DAC 2 - 0 slice enabled DAC 2 - 1 slice enabled DAC 2 - 2 slice enabled DAC 2 - 3 slice enabled Adding DAC 3 DAC 3 - 0 slice enabled DAC 3 - 1 slice enabled DAC 3 - 2 slice enabled Adding ADC 2 ADC 2 - 0 slice enabled ADC 2 - 2 slice enabled clocks_locked: dac_tiles= [2, 3] adc_tiles= [2] iTile DAC: 2 PLLLockStatus= 1 iTile DAC: 3 PLLLockStatus= 1 iTile ADC: 2 PLLLockStatus= 1 dac_locked: [False, False] adc_locked: [False] set_all_clks: board= ZCU216 resetting clocks: 245.76 491.52 lmk: [{'spi_device': PosixPath('/dev/spidev1.1'), 'compatible': 'lmk04828', 'num_bytes': 3}] lmx: [{'spi_device': PosixPath('/dev/spidev1.3'), 'compatible': 'lmx2594'}, {'spi_device': PosixPath('/dev/spidev1.2'), 'compatible': 'lmx2594'}] clocks_locked: dac_tiles= [2, 3] adc_tiles= [2] iTile DAC: 2 PLLLockStatus= 2 iTile DAC: 3 PLLLockStatus= 2 iTile ADC: 2 PLLLockStatus= 2 dac_locked: [True, True] adc_locked: [True]

    Note with the ZCU216 that the first call to clocks_locked shows both DACs and the ADC clock as not locked, and the second call to clocks_locks shows both DACs an the ADC clocks as locked (is the PLLLockStatus value from one of the status registers on the LMX2594?).

    ZCU208 list_rf_blocks: configuring DACs and ADCs to list Adding DAC 2 DAC 2 - 0 slice enabled DAC 2 - 2 slice enabled Adding DAC 3 DAC 3 - 0 slice enabled DAC 3 - 2 slice enabled Adding ADC 2 ADC 2 - 0 slice enabled ADC 2 - 1 slice enabled clocks_locked: dac_tiles= [2, 3] adc_tiles= [2] iTile DAC: 2 PLLLockStatus= 1 iTile DAC: 3 PLLLockStatus= 1 iTile ADC: 2 PLLLockStatus= 2 dac_locked: [False, False] adc_locked: [True] set_all_clks: board= ZCU208 resetting clocks: 245.76 491.52 lmk: [{'spi_device': PosixPath('/dev/spidev1.1'), 'compatible': 'lmk04828', 'num_bytes': 3}] lmx: [{'spi_device': PosixPath('/dev/spidev1.3'), 'compatible': 'lmx2594'}, {'spi_device': PosixPath('/dev/spidev1.2'), 'compatible': 'lmx2594'}] clocks_locked: dac_tiles= [2, 3] adc_tiles= [2] iTile DAC: 2 PLLLockStatus= 1 iTile DAC: 3 PLLLockStatus= 1 iTile ADC: 2 PLLLockStatus= 2 dac_locked: [False, False] adc_locked: [True]

    Note with the ZCU208 that the first call to clocks_locked shows both DAC clocks as not locked but the ADC as locked (this is odd), and the second call to clocks_locks shows both DACs still not locked but the ADC clock as locked. So the locked status doesn't change after the clocks are programmed (I do see the ZCU108 CLK104 PLL locked LEDs flash when the clocks are reset). Is there anything in the PetaLinux build that would cause this? I can run xrfclk.py and the Xilinx embeddedsw gitlab version, xrfclk.c, on both the ZCU216 and the ZCU208, and the CLK104 board PLL locked LEDs flash off, then on in both cases (for both the xrfclk.c built for Linux and the Python version). Can anyone think of something I've missed in the port that would cause this? Thank you!

    opened by jramsey123 13
  • tproc64x32 Number of Output Channels Configurable

    tproc64x32 Number of Output Channels Configurable

    Has there been any consideration given to making the tproc64x32 IP have a configurable number of output channels instead of fixed at eight, so that the number can be set in Vivado? The reason I ask is, that it appears as though it would be simpler to reduce the number of output channels on the tproc IP with my ZCU208 port than add more DACs with two more clock domains to make up the difference between the ZCU216 and ZCU208 DAC configuration.

    opened by jramsey123 12
  • Count register in qick.averager_program.RAveragerProgram will count ahead of experiment runs

    Count register in qick.averager_program.RAveragerProgram will count ahead of experiment runs

    When running the demo program “02_Sweeping_variables”, I try to change some parameters in the config dict (longer relax_delay, more reps and expts), I found some points in the middle got wrong data.

    The config dict I used is: config={"res_ch":7, # --Fixed "relax_delay":5000, # --Fixed "res_phase":0, # --Fixed "pulse_style": "const", # --Fixed "length":100, # [Clock ticks] "readout_length":200, # [Clock ticks] "pulse_gain":0, # [DAC units] "pulse_freq": 100, # [MHz] "adc_trig_offset": 100, # [Clock ticks] "reps":60, # New variables "expts": 40, "start":0, # [DAC units] "step":50# [DAC units] }

    And the result looks like: image

    If I change the relax_delay to 0, the result looks normal. image

    I try to debug this by looking into the acquire_round function of RAveragerProgram, and I think the problem is probably because the count register (which is accessed via tproc.tproc.single_read(addr=1) ) is counting ahead of the experiment runs.

    Here I added the following print lines around line 424 of qick.averager_program to keep track of this count register. image

    And I got outputs like: image

    It seems that whenever the tProcessor starts, this count register will directly jump to 8. For example in the result above, the relax_delay is 5ms, but the counter jump to 8 in 3.5e-5s. (Iterations after this seem to be fine, it will count to 9, 10, 11 after each relax_delay …… )

    I think this problem didn't show up for short relax_delay because the time python took to run from reading the counter to acquiring the data is long enough for the board to finish 8 more runs, so we didn't took data that doesn't exist yet. But for long relax_delay , when the counter count to 100, we actually only have 92 data in the buffer.

    opened by hatlabcz 7
  • R-type set command that takes a single register

    R-type set command that takes a single register

    The assembly "set" command takes in a bunch of registers for controlling various pulse parameters specific to the DAC (freq, phase, gain, etc.). The documentation shows: set ch, p, $ra, $rb, $rc, $rd, $re, $rt:

    This makes it quite annoying to use the set instruction for ADC / digital marker triggering. E.g. if I want to trigger an ADC readout or digital marker at a time defined in a register (so seti won't do), I need to configure $ra, $rb, $rc, $rd, $re, $rt instead of just $rt and a single register containing all of the marker/trigger bits.

    I think it would be nice to have a separate instruction for this purpose e.g. set2 ch, p, $ra, $rt where $ra contains all of the marker/trigger bits.

    opened by jacobfeder 6
  • Bug in tproc_ctrl

    Bug in tproc_ctrl

    Hi I am getting a weird bug when I do start up qick via a client Input (connecting to nameserver and printing out qick soc object):

    import Pyro4 from qick import * from qick import QickConfig Pyro4.config.SERIALIZER = "pickle" Pyro4.config.PICKLE_PROTOCOL_VERSION=4

    ns_host = '192.168.0.133' #ip of client pc where the nameserver is running ns_port = 8000 server_name = "myqick"

    ns = Pyro4.locateNS(host=ns_host, port=ns_port)

    soc = Pyro4.Proxy(ns.lookup(server_name)) soccfg = QickConfig(soc.get_cfg()) print(soccfg)

    Output:

    KeyError Traceback (most recent call last) Cell In [8], line 3 1 soc = Pyro4.Proxy(ns.lookup(server_name)) 2 soccfg = QickConfig(soc.get_cfg()) ----> 3 print(soccfg) File c:\users\chakram_meas\documents\github\qick\qick_lib\qick\qick_asm.py:48, in QickConfig.str(self) 47 def str(self): ---> 48 return self.description() File c:\users\chakram_meas\documents\github\qick\qick_lib\qick\qick_asm.py:88, in QickConfig.description(self) 86 lines.append("\n\t%d readout channels:" % (len(self['readouts']))) 87 for iReadout, readout in enumerate(self['readouts']): ---> 88 if readout['tproc_ctrl'] is None: 89 lines.append("\t%d:\t%s - controlled by PYNQ" % (iReadout, readout['ro_type'])) 90 else: KeyError: 'tproc_ctrl'

    This error does not occur when I run qick directly from xilinx board (instead of client/external pc)

    opened by EeshGupta 5
  • Readout with the board RFSoC4x2

    Readout with the board RFSoC4x2

    I am trying to characterize a qubit using the notebook for the qubit demo. The demo suggests doing the readout with a mixer and LO (on a ZCU111) but considering that the RFSoc4x2 board has a sampling frequency of 10Gsps I am trying to do it without mixer. But I am not getting any nice results.

    Is it possible to do readouts on this board without mixers? or should I use mixer and LO?

    opened by JavierSerranoGarcia 5
  • ZCU216 Board Description

    ZCU216 Board Description

    When I try to print out the following: soc = Pyro4.Proxy(ns.lookup(server_name)) soccfg = QickConfig(soc.get_cfg()) print(soccfg)

    The print line produces the following error:

    `KeyError Traceback (most recent call last) in 1 soc = Pyro4.Proxy(ns.lookup(server_name)) 2 soccfg = QickConfig(soc.get_cfg()) ----> 3 print(soccfg)

    c:_lib\python\qick\qick_lib\qick\qick_asm.py in str(self) 31 32 def str(self): ---> 33 return self.description() 34 35 def getitem(self, key):

    c:_lib\python\qick\qick_lib\qick\qick_asm.py in description(self) 76 readout['avg_maxlen'], readout['buf_maxlen'], readout['trigger_bit'], readout['tproc_ch'])) 77 ---> 78 lines.append("\n\t%d DACs:" % (len(self['dacs']))) 79 for dac in self['dacs']: 80 tile, block = [int(c) for c in dac]

    c:_lib\python\qick\qick_lib\qick\qick_asm.py in getitem(self, key) 34 35 def getitem(self, key): ---> 36 return self._cfg[key] 37 38 def setitem(self, key, val):

    KeyError: 'dacs'`

    Indeed when I print out the configuration using soccfg.get_cfg() I get the the output below which does not contain 'dacs'

    {'board': 'ZCU216', 'refclk_freq': 245.76, 'fs_proc': 430.08, 'gens': [{'type': 'axis_signal_gen_v4', 'maxlen': 65536, 'b_dds': 32, 'switch_ch': 0, 'tproc_ch': 1, 'dac': '20', 'fs': 6881.280000000001, 'f_fabric': 430.08, 'samps_per_clk': 16, 'maxv': 32766, 'maxv_scale': 1.0}, {'type': 'axis_signal_gen_v4', 'maxlen': 65536, 'b_dds': 32, 'switch_ch': 1, 'tproc_ch': 2, 'dac': '21', 'fs': 6881.280000000001, 'f_fabric': 430.08, 'samps_per_clk': 16, 'maxv': 32766, 'maxv_scale': 1.0}, {'type': 'axis_signal_gen_v4', 'maxlen': 65536, 'b_dds': 32, 'switch_ch': 2, 'tproc_ch': 3, 'dac': '22', 'fs': 6881.280000000001, 'f_fabric': 430.08, 'samps_per_clk': 16, 'maxv': 32766, 'maxv_scale': 1.0}, {'type': 'axis_signal_gen_v4', 'maxlen': 65536, 'b_dds': 32, 'switch_ch': 3, 'tproc_ch': 4, 'dac': '23', 'fs': 6881.280000000001, 'f_fabric': 430.08, 'samps_per_clk': 16, 'maxv': 32766, 'maxv_scale': 1.0}, {'type': 'axis_signal_gen_v4', 'maxlen': 65536, 'b_dds': 32, 'switch_ch': 4, 'tproc_ch': 5, 'dac': '30', 'fs': 6881.280000000001, 'f_fabric': 430.08, 'samps_per_clk': 16, 'maxv': 32766, 'maxv_scale': 1.0}, {'type': 'axis_signal_gen_v4', 'maxlen': 65536, 'b_dds': 32, 'switch_ch': 5, 'tproc_ch': 6, 'dac': '31', 'fs': 6881.280000000001, 'f_fabric': 430.08, 'samps_per_clk': 16, 'maxv': 32766, 'maxv_scale': 1.0}, {'type': 'axis_signal_gen_v4', 'maxlen': 65536, 'b_dds': 32, 'switch_ch': 6, 'tproc_ch': 7, 'dac': '32', 'fs': 6881.280000000001, 'f_fabric': 430.08, 'samps_per_clk': 16, 'maxv': 32766, 'maxv_scale': 1.0}], 'readouts': [{'avg_maxlen': 16384, 'buf_maxlen': 1024, 'b_dds': 32, 'adc': '20', 'fs': 2457.6, 'f_fabric': 307.2, 'trigger_bit': 14, 'tproc_ch': 0}, {'avg_maxlen': 16384, 'buf_maxlen': 1024, 'b_dds': 32, 'adc': '22', 'fs': 2457.6, 'f_fabric': 307.2, 'trigger_bit': 15, 'tproc_ch': 1}], 'iqs': [], 'tprocs': [{'trig_output': 0, 'pmem_size': 8192.0, 'dmem_size': 4096}]}

    opened by EeshGupta 5
  • programming an external LMX2595 LO from ZCU111

    programming an external LMX2595 LO from ZCU111

    Greetings from UC Berkeley.

    Thanks for the phenomenal work! I have followed the tutorials and got myself familiar with qick library.

    I am now planning to perform frequency conversion with an external LO and I have purchased LMX2595 evaluation board for this purpose. It is similar to the one used in the RFboard front end. I would like to be able to control it via SPI through Qick. I have followed the schematic and connected the SPI wires accordingly. However the SPI IPs are missing and I can't Initialize the board using RFQickSoc(). Any suggestion on how to load them and set the LO frequency to a particular frequency?

    Thanks, Mutasem

    image

    image

    opened by mutasemodeh 5
  • easier-to-understand way to go back to default refclk settings

    easier-to-understand way to go back to default refclk settings

    When reloading the QickSoC with an external_clk=False the setting did not change because the if condition was not fulfilled. Now it checks whether the clocks have previously been set to an external_clk or not.

    opened by kevinkiener 3
  • Changing signal generator

    Changing signal generator

    Hi, thank you for this excellent softare. I have a (potentially dumb) question on the signal generators - how is it possible to switch the type of generator? I am working on ZCU216 and all generators are axis_signal_gen_v4; I would like to use axis_sg_mux4_v2. Does it require recompiling the bitfile to change? Is there any documentation that would help (besides the qick docs)?

    Cheers

    opened by Cameron-Spence-Riverlane 2
  • Running Qick/PYNQ without root privileges on a RFSoC4x2

    Running Qick/PYNQ without root privileges on a RFSoC4x2

    We would like to install SLURM on the board to run Qick experiments but we are worried about having to do it as root. We know it is a Pynq limitation (see here).

    Do you know if there is any recent solution to this issue?

    opened by JavierSerranoGarcia 2
  • Using I/O port as Input by QICK library

    Using I/O port as Input by QICK library

    I found that i can use Digital output I/O port by using QICK library.

    But i also want to use Input function using QICK library.

    I searched some QICK library detail, but i have no idea how to do that.

    Do I have to use PYNQ library to use I/O input function?

    thank you.

    image

    opened by yyjun22 2
  • Changing tProc clk frequency (zcu111 board)

    Changing tProc clk frequency (zcu111 board)

    Hi i'm using zcu111 board to make DC signal and RF signal

    I want to know how to change clk frequency of tProc which is now 384MHz.

    Do I have to change some firmware code files? or are there any simple ways to change tProc clk frequency?

    thank you

    opened by yyjun22 1
  • Mapping between DAC pulse_gain and actual AXI number that feed into the DAC?

    Mapping between DAC pulse_gain and actual AXI number that feed into the DAC?

    Hi folks,

    I have a question about the mapping between DAC pulse_gain in the QICK configuration setting (in instructions it suggest us to try pulse_gain from 500 to 30000 DAC units). I want to know how does these numbers mapped to the AXI input number of the 14-bit DAC (0-8191)? Same question for the 12-bit ADC - how does the acquire_decimated return value mapped to the actual ADC output AXI word?

    Thanks! Zhizhen

    opened by zhizhenzhong 1
  • Raw DC data reading and writing on ZCU111 using qick

    Raw DC data reading and writing on ZCU111 using qick

    Hey folks, I'm trying to use the qick package to drive an optical setup. For part of my calibration procedure I need to be able to source raw numpy waveforms out of a DAC (no RF mixing) and measure the result on an ADC (again, no RF mixing/up or down converting).

    I was hoping that this would be straightforward to do with the qick package and you folks could help me do it. Best, -Zhizhen

    opened by zhizhenzhong 5
  • Negative differential DAC output from QICK signal generator

    Negative differential DAC output from QICK signal generator

    Hi,

    I am looking into generating a variable +ve or -ve DC signal using one of the QICK signal generators. To do so, I have connected the differential outputs of DAC228_T0_CH0 P and N terminals to an operational amplifier with a split-power supply (+3.3V, -3.3V) hoping to reject the common mode and generate a +ve/-ve DC signal.

    self.declare_gen(ch=0, nqz=1)
    self.set_pulse_registers(ch=0, freq=0, length=1000, phase=0, gain=g, style="const") 
    

    However, the DAC P voltage is always equal to or larger than the DAC N voltage when sweeping the gain value. I was expecting the signal generator to behave roughly like this with a bit of offset:

    DAC P=DAC N, when gain=0, DAC P>DAC N, when gain>0, DAC P< DAC N when gain<0.

    Is there a way to control this?

    Thanks, Mutasem

    opened by mutasemodeh 2
  • Use more ADC ports on ZCU111

    Use more ADC ports on ZCU111

    In the QICK overlay and also the example here https://github.com/openquantumhardware/qick/blob/main/qick_demos/00_Send_receive_pulse.ipynb, only two ADC ports (on ADC tile 0) are activated. Is there a code or design change possible to enable more ADC ports given that there are 8 of them on the ZCU111?

    opened by zhizhenzhong 4
Releases(v0.1.1)
  • v0.1.1(May 6, 2022)

  • v0.1.0(Apr 8, 2022)

    This is the QICK firmware and software version that was used for the QICK paper (https://arxiv.org/abs/2110.00557). Only the ZCU111 is supported.

    We're retroactively assigning this a release number.

    Source code(tar.gz)
    Source code(zip)
Customised to detect objects automatically by a given model file(onnx)

LabelImg LabelImg is a graphical image annotation tool. It is written in Python and uses Qt for its graphical interface. Annotations are saved as XML

Heeone Lee 1 Jun 07, 2022
RMNA: A Neighbor Aggregation-Based Knowledge Graph Representation Learning Model Using Rule Mining

RMNA: A Neighbor Aggregation-Based Knowledge Graph Representation Learning Model Using Rule Mining Our code is based on Learning Attention-based Embed

宋朝都 4 Aug 07, 2022
[ACM MM 2021] Multiview Detection with Shadow Transformer (and View-Coherent Data Augmentation)

Multiview Detection with Shadow Transformer (and View-Coherent Data Augmentation) [arXiv] [paper] @inproceedings{hou2021multiview, title={Multiview

Yunzhong Hou 27 Dec 13, 2022
Reinforcement Learning for Portfolio Management

qtrader Reinforcement Learning for Portfolio Management Why Reinforcement Learning? Learns the optimal action, rather than models the market. Adaptive

Angelos Filos 406 Jan 01, 2023
The code release of paper Low-Light Image Enhancement with Normalizing Flow

[AAAI 2022] Low-Light Image Enhancement with Normalizing Flow Paper | Project Page Low-Light Image Enhancement with Normalizing Flow Yufei Wang, Renji

Yufei Wang 176 Jan 06, 2023
Pytorch implement of 'Unmixing based PAN guided fusion network for hyperspectral imagery'

Pgnet There's a improved version compared with the publication in Tgrs with the modification in the deduction of the PDIN block: https://arxiv.org/abs

5 Jul 01, 2022
The official repository for "Score Transformer: Generating Musical Scores from Note-level Representation" (MMAsia '21)

Score Transformer This is the official repository for "Score Transformer": Score Transformer: Generating Musical Scores from Note-level Representation

22 Dec 22, 2022
Neon-erc20-example - Example of creating SPL token and wrapping it with ERC20 interface in Neon EVM

Example of wrapping SPL token by ERC2-20 interface in Neon Requirements Install

7 Mar 28, 2022
A library for efficient similarity search and clustering of dense vectors.

Faiss Faiss is a library for efficient similarity search and clustering of dense vectors. It contains algorithms that search in sets of vectors of any

Meta Research 18.8k Jan 08, 2023
Code for DisCo: Remedy Self-supervised Learning on Lightweight Models with Distilled Contrastive Learning

DisCo: Remedy Self-supervised Learning on Lightweight Models with Distilled Contrastive Learning Pytorch Implementation for DisCo: Remedy Self-supervi

79 Jan 06, 2023
Gradient-free global optimization algorithm for multidimensional functions based on the low rank tensor train format

ttopt Description Gradient-free global optimization algorithm for multidimensional functions based on the low rank tensor train (TT) format and maximu

5 May 23, 2022
PyTorch Implementation of CycleGAN and SSGAN for Domain Transfer (Minimal)

MNIST-to-SVHN and SVHN-to-MNIST PyTorch Implementation of CycleGAN and Semi-Supervised GAN for Domain Transfer. Prerequites Python 3.5 PyTorch 0.1.12

Yunjey Choi 401 Dec 30, 2022
This repository is an implementation of paper : Improving the Training of Graph Neural Networks with Consistency Regularization

CRGNN Paper : Improving the Training of Graph Neural Networks with Consistency Regularization Environments Implementing environment: GeForce RTX™ 3090

THUDM 28 Dec 09, 2022
True Few-Shot Learning with Language Models

This codebase supports using language models (LMs) for true few-shot learning: learning to perform a task using a limited number of examples from a single task distribution.

Ethan Perez 124 Jan 04, 2023
This is an unofficial PyTorch implementation of Meta Pseudo Labels

This is an unofficial PyTorch implementation of Meta Pseudo Labels. The official Tensorflow implementation is here.

Jungdae Kim 320 Jan 08, 2023
Ranking Models in Unlabeled New Environments (iccv21)

Ranking Models in Unlabeled New Environments Prerequisites This code uses the following libraries Python 3.7 NumPy PyTorch 1.7.0 + torchivision 0.8.1

14 Dec 17, 2021
A simple baseline for 3d human pose estimation in tensorflow. Presented at ICCV 17.

3d-pose-baseline This is the code for the paper Julieta Martinez, Rayat Hossain, Javier Romero, James J. Little. A simple yet effective baseline for 3

Julieta Martinez 1.3k Jan 03, 2023
PocketNet: Extreme Lightweight Face Recognition Network using Neural Architecture Search and Multi-Step Knowledge Distillation

PocketNet This is the official repository of the paper: PocketNet: Extreme Lightweight Face Recognition Network using Neural Architecture Search and M

Fadi Boutros 40 Dec 22, 2022
Image to Image translation, image generataton, few shot learning

Semi-supervised Learning for Few-shot Image-to-Image Translation [paper] Abstract: In the last few years, unpaired image-to-image translation has witn

yaxingwang 49 Nov 18, 2022
Official code for "Towards An End-to-End Framework for Flow-Guided Video Inpainting" (CVPR2022)

E2FGVI (CVPR 2022) English | 简体中文 This repository contains the official implementation of the following paper: Towards An End-to-End Framework for Flo

Media Computing Group @ Nankai University 537 Jan 07, 2023