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)
Gradient representations in ReLU networks as similarity functions

Gradient representations in ReLU networks as similarity functions by Dániel Rácz and Bálint Daróczy. This repo contains the python code related to our

1 Oct 08, 2021
This is the repository for CVPR2021 Dynamic Metric Learning: Towards a Scalable Metric Space to Accommodate Multiple Semantic Scales

Intro This is the repository for CVPR2021 Dynamic Metric Learning: Towards a Scalable Metric Space to Accommodate Multiple Semantic Scales Vehicle Sam

39 Jul 21, 2022
Official repository for "Deep Recurrent Neural Network with Multi-scale Bi-directional Propagation for Video Deblurring".

RNN-MBP Deep Recurrent Neural Network with Multi-scale Bi-directional Propagation for Video Deblurring (AAAI-2022) by Chao Zhu, Hang Dong, Jinshan Pan

SIV-LAB 22 Aug 31, 2022
PyTorch Implementation of the SuRP algorithm by the authors of the AISTATS 2022 paper "An Information-Theoretic Justification for Model Pruning"

PyTorch Implementation of the SuRP algorithm by the authors of the AISTATS 2022 paper "An Information-Theoretic Justification for Model Pruning".

Berivan Isik 8 Dec 08, 2022
An updated version of virtual model making

Model-Swap-Face v2   这个项目是基于stylegan2 pSp制作的,比v1版本Model-Swap-Face在推理速度和图像质量上有一定提升。主要的功能是将虚拟模特进行环球不同区域的风格转换,目前转换器提供西欧模特、东亚模特和北非模特三种主流的风格样式,可帮我们实现生产资料零成

seeprettyface.com 62 Dec 09, 2022
A working implementation of the Categorical DQN (Distributional RL).

Categorical DQN. Implementation of the Categorical DQN as described in A distributional Perspective on Reinforcement Learning. Thanks to @tudor-berari

Florin Gogianu 98 Sep 20, 2022
PyTorch implementation of our Adam-NSCL algorithm from our CVPR2021 (oral) paper "Training Networks in Null Space for Continual Learning"

Adam-NSCL This is a PyTorch implementation of Adam-NSCL algorithm for continual learning from our CVPR2021 (oral) paper: Title: Training Networks in N

Shipeng Wang 34 Dec 21, 2022
Quantization library for PyTorch. Support low-precision and mixed-precision quantization, with hardware implementation through TVM.

HAWQ: Hessian AWare Quantization HAWQ is an advanced quantization library written for PyTorch. HAWQ enables low-precision and mixed-precision uniform

Zhen Dong 293 Dec 30, 2022
Source code for our paper "Empathetic Response Generation with State Management"

Source code for our paper "Empathetic Response Generation with State Management" this repository is maintained by both Jun Gao and Yuhan Liu Model Ove

Yuhan Liu 3 Oct 08, 2022
Repository for the paper "Online Domain Adaptation for Occupancy Mapping", RSS 2020

RSS 2020 - Online Domain Adaptation for Occupancy Mapping Repository for the paper "Online Domain Adaptation for Occupancy Mapping", Robotics: Science

Anthony 26 Sep 22, 2022
source code of “Visual Saliency Transformer” (ICCV2021)

Visual Saliency Transformer (VST) source code for our ICCV 2021 paper “Visual Saliency Transformer” by Nian Liu, Ni Zhang, Kaiyuan Wan, Junwei Han, an

89 Dec 21, 2022
Weighted QMIX: Expanding Monotonic Value Function Factorisation

This repo contains the cleaned-up code that was used in "Weighted QMIX: Expanding Monotonic Value Function Factorisation"

whirl 82 Dec 29, 2022
Using LSTM write Tang poetry

本教程将通过一个示例对LSTM进行介绍。通过搭建训练LSTM网络,我们将训练一个模型来生成唐诗。本文将对该实现进行详尽的解释,并阐明此模型的工作方式和原因。并不需要过多专业知识,但是可能需要新手花一些时间来理解的模型训练的实际情况。为了节省时间,请尽量选择GPU进行训练。

56 Dec 15, 2022
Thermal Control of Laser Powder Bed Fusion using Deep Reinforcement Learning

This repository is the implementation of the paper "Thermal Control of Laser Powder Bed Fusion Using Deep Reinforcement Learning", linked here. The project makes use of the Deep Reinforcement Library

BaratiLab 11 Dec 27, 2022
Official code for 'Robust Siamese Object Tracking for Unmanned Aerial Manipulator' and offical introduction to UAMT100 benchmark

SiamSA: Robust Siamese Object Tracking for Unmanned Aerial Manipulator Demo video 📹 Our video on Youtube and bilibili demonstrates the evaluation of

Intelligent Vision for Robotics in Complex Environment 12 Dec 18, 2022
Audio Source Separation is the process of separating a mixture into isolated sounds from individual sources

Audio Source Separation is the process of separating a mixture into isolated sounds from individual sources (e.g. just the lead vocals).

Victor Basu 14 Nov 07, 2022
Official PyTorch Implementation of paper "NeLF: Neural Light-transport Field for Single Portrait View Synthesis and Relighting", EGSR 2021.

NeLF: Neural Light-transport Field for Single Portrait View Synthesis and Relighting Official PyTorch Implementation of paper "NeLF: Neural Light-tran

Ken Lin 38 Dec 26, 2022
Implementation of "Distribution Alignment: A Unified Framework for Long-tail Visual Recognition"(CVPR 2021)

Implementation of "Distribution Alignment: A Unified Framework for Long-tail Visual Recognition"(CVPR 2021)

105 Nov 07, 2022
Tensorflow implementation of the paper "HumanGPS: Geodesic PreServing Feature for Dense Human Correspondences", CVPR 2021.

HumanGPS: Geodesic PreServing Feature for Dense Human Correspondences Tensorflow implementation of the paper "HumanGPS: Geodesic PreServing Feature fo

Google Interns 50 Dec 21, 2022
EMNLP'2021: SimCSE: Simple Contrastive Learning of Sentence Embeddings

SimCSE: Simple Contrastive Learning of Sentence Embeddings This repository contains the code and pre-trained models for our paper SimCSE: Simple Contr

Princeton Natural Language Processing 2.5k Dec 29, 2022