An open source Python package for plasma science that is under development

Overview

PlasmaPy

PyPI version Conda version PyPI version License

Matrix Twitter YouTube

GitHub Actions — CI weekly tests Style linters pre-commit.ci status codecov Read the Docs Status Binder

DOI astropy pre-commit Open Source Helpers

PlasmaPy is an open source, community-developed Python 3.7+ package for plasma science. PlasmaPy intends to be for plasma science what Astropy is for astronomy — a collection of functionality commonly used and shared between plasma scientists and researchers globally, running within and leveraging the open source scientific Python ecosystem. The goals of this project are more thoroughly described in this recent video. Current functionality is described in PlasmaPy's online documentation.

We created a guide on contributing to PlasmaPy and have a code of conduct. New contributors are very welcome!

Installation

If you have installed Python, you can install PlasmaPy from pip via

python -m pip install plasmapy

If you have installed conda, then you can also get PlasmaPy from

conda install -c conda-forge plasmapy

To contribute to the package, check out our instructions on installing PlasmaPy from source.

Community

Matrix chat

If you have any questions, the quickest way to get a response is to ask on our Matrix/Gitter channel. Both of these are the same chat channel; Gitter uses a bridge to link the two.

Weekly community meetings

Updated information about our community meetings can be found on plasmapy.org.

As of now, PlasmaPy hosts its weekly online community meeting every Tuesday to cover topics related to code development. This call is hosted on Zoom.

The schedule of our community meetings is on our calendar, and you may access the minutes and agendas. Any last minute changes will be discussed on Matrix. As of November 2021, our meetings are on Tuesdays at 19:00 UTC. Come discuss plasma software with us!

Weekly office hours

PlasmaPy's weekly office hours on Thursdays at 19:00 UTC are an opportunity to chat with active members of the PlasmaPy community about the package and project.

GitHub discussions

We're now trying out GitHub discussions for more varied topics that aren't exactly issues with the existing code base. It's a great place to suggest ideas, bring up discussion topics, and ask questions.

Mailing list

You can subscribe to our low-volume mailing list to receive PlasmaPy newsletters and other announcements.

Suggestion box

We have a suggestion box if you would like to (optionally anonymously) suggest a feature/topic for consideration. These will be reposted on the mailing list or directly in GitHub issues, as appropriate, for further discussion.

License

PlasmaPy is permissively licensed under a 3-clause BSD license with added protections against software patents.

Citing PlasmaPy

An emerging best practice for software citation is to cite the specific version of each software package used in a research project (instead of only citing a journal article, website, or GitHub repository). The citation should include a persistent identifier that uniquely identifies which version of the software was used. We therefore ask that you cite the specific version of PlasmaPy used in your research project. Releases of PlasmaPy are available in the PlasmaPy community on Zenodo, along with many other PlasmaPy resources. Please check our documentation for more detailed citation instructions.

Acknowledgements

Early development on PlasmaPy was supported in part by the U.S. Department of Energy, the Smithsonian Institution, and Google Summer of Code. Ongoing PlasmaPy development is being supported through a collaborative award from the U.S. National Science Foundation's Cyberinfrastructure for Sustained Scientific Innovation program and a NASA Heliophysics Data Environment Enhancements award.

Comments
  • Transport eqs

    Transport eqs

    Addresses #35 Adds coupling parameter for #49 Heavily expands Coulomb logarithm for #154

    Adding a bunch of transport functionality and re-arranging some functions within transport.py. Much of the additions are based off of Gericke, Murillo, and Schlanges (2002) for extending Coulomb logarithm to the dense plasma case where quantum effects become important. To that end, I am also adding a coupling parameter function, which is handy for determining which regime a plasma is in. The coupling parameter itself is quite involve and requires things like: ideal chemical potential, Fermi integral, polylogarithms.

    I am also adding functions for collision frequency and mean free path (which I believe I wrote based off of F. F. Chen's book).

    Transport 
    opened by lemmatum 91
  • Charged Particle Radiography: Detector Stacks

    Charged Particle Radiography: Detector Stacks

    Charged particle radiography detectors are usually comprised of multiple layers of active medium, each of which detects different energies of particles based on their Bragg peak. This PR adds a couple objects that represent these detector stacks and calculates the energies deposited in each layer using stopping power data from NIST.

    This is Step 1 of adding support for detector stacks. Step 2, in a future PR, will create a new synthetic_radiograph function that takes a film stack object and produces a synthetic radiograph in each layer.

    ~~This PR depends on #1486 and should be merged after that PR~~ Done

    Status: ready for review Diagnostics Notebooks 
    opened by pheuer 54
  • Thomson Scattering Module Initial Commit

    Thomson Scattering Module Initial Commit

    This PR adds a file plasmapy/diagnostics/thomson.py which contain a code for simulating Thomson scattering spectra for Maxwellian plasmas in both the collective and non-collective regimes.

    An associated file of tests is also added: plasmapy/diagnostics/tests/test_thomson.py. This file contains two tests that run the program in two regimes (collective and non-collective) and make sure the results match their current output values.

    Diagnostics Needs change log entry 
    opened by pheuer 53
  • Braginskii

    Braginskii

    Working on Issue #35 . I've put in some functionality and done some preliminary checks and tests. Definitely still a work in progress, needs tests and documentation and then is going to need some ruthless refactoring. Oh shoot, and the PEP8 checking-thing is going to have a fit.

    Documentation Formulary Transport 
    opened by samurai688 51
  • Move fundamental collision frequencies to `MaxwellianCollisionFrequencies`

    Move fundamental collision frequencies to `MaxwellianCollisionFrequencies`

    Resolves #1699

    This pull request moves plasmapy.formulary.collisons.fundamental_ion_collision_freq and plasmapy.formulary.collisons.fundamental_electron_collision_freq to CollisionFrequencies.

    • [x] I have added a changelog entry for this pull request.
    • [x] If adding new functionality, I have added tests and docstrings.
    • [x] I have fixed any newly failing tests.
    Formulary Utilities Breaking 
    opened by JaydenR2305 45
  • Issue #759 Serializing and Deserializing particles

    Issue #759 Serializing and Deserializing particles

    Related to Issue #759 Extension on to functionality introduced in PR #833

    This introduces the from_json method for the Particle, CustomParticle, and DimensionlessParticle classes that converts from a JSON representation to the appropriate particle object.

    • [x] I have added a changelog entry for this pull request (please see changelog/README.rst for instructions, and if you need help with picking the PR type, ask!)
    • [x] If adding new functionality, I have added (passing) tests and docstrings. (Tests pop up at the bottom, in the checks box).
    • [x] I have fixed any new failing tests (if you're unsure why they're failing, ask!).

    Suggestions and advice is appreciated :)

    Thank you!

    Particles 
    opened by DarkAEther 44
  • Fitting Thomson Scattering Spectra

    Fitting Thomson Scattering Spectra

    The use of Thomson scattering as a diagnostic depends on the ability to extract plasma parameters (eg. density, temperature, flow velocity) from scattered light spectra. One of the design uses for the diagnostics.thomson.spectral_density function would be as part of a fit function to curve fit experimental data to extract these parameters. As such, I've received requests to develop a function for fitting TS data.

    This function provides a lmfit.Model function (thomson.thomson_model) with which the user can apply any of the lmfit fitting algorithms and other features to Thomson scattering data. The example notebook exhibits in detail how this is done.

    ** EDIT **

    This PR was starting to get big, so I've restricted its scope thus:

    This PR

    • Basic Thomson fitting lmfit model function.
    • Changes to thomson.spectral_density necessary to make the fitting work.
    • One example notebook that demonstrates fitting
    • Minor easy speed improvements.

    Future PRs

    • Optimize thomson.spectral_density and sub-functions to make the fitting algorithm fast enough for research (#1085)
    • Create a function that estimates the errors in a Thomson fit (or maybe more generally in an lmfit result?). PR to come
    Diagnostics Notebooks Breaking 
    opened by pheuer 40
  • Implement a dispersion relation solver

    Implement a dispersion relation solver

    When dealing with plasma waves, it would be helpful to have a dispersion relation solver.

    This was recommended by John Raymond. I believe Carl Sovinec wrote a code that this several years ago, though not in python.

    Formulary Effort: very high Needs subject matter expert 
    opened by namurphy 38
  • Grids

    Grids

    This PR creates a new sets of objects within the 'plasmapy.plasma' package:

    Child classes of 'grids.AbstractGrid' represent 3D grids of positions in various coordinate systems. Further subclasses can provide special types of grids - for example 'IrregularCartesianGrid' is a non-uniformly spaced Cartesian grid for testing post-processing scripts meant for irregularly gridded simulation outputs.

    This PR originated as part of the proton radiography module (PR #895 ) and must be merged before that module can be finalized. In the meantime, that PR serves as an example of one usecase for these objects. The same grid objects could potentially also be useful input forms for simulations, etc.

    • [x] Add methods for calculating volume-averaging values over the grid at a position (at least for CartesianGrid with uniform spacing...)
    Plasma class 
    opened by pheuer 37
  • Fix Volume Weighted Interpolator in CartesianGrid class (grids.py)

    Fix Volume Weighted Interpolator in CartesianGrid class (grids.py)

    I realized the current volume weighted interpolator in grids.CartesianGrid was incorrect. This PR fixes that.

    Here's an example of the old interpolator: the linear interpolation between data points is backwards! image

    And here it is with the corrected algorithm image

    I haven't yet found a good implementation of this algorithm to copy, so my code probably isn't the most efficient. The diagram below shows the idea in 2D

    image

    The particle position "p" is surrounded by a box of size dx * dy. The four surrounding grid points are similarly surrounded. The weight for the field from each grid point is then the area (volume in 3D) of the overlap between the particle box and the box for each grid point.

    Plasma class Diagnostics Breaking 
    opened by pheuer 36
  • Proton Radiography Module

    Proton Radiography Module

    Proton radiography is an increasingly common diagnostic technique used to interrogate the electric and magnetic fields inside high energy density plasmas. The plasma of interest is positioned between a bright pulsed source of protons and a detector plane. Electric and magnetic fields in the plasma deflect the protons, producing patterns on the detector. Since this represents a non-linear and line-integrated measurement of the fields, the interpretation of these "proton radiographs" is a complicated business. The goal of this module is to provide tools for planning these experiments and analyzing their results.

    Eventually, this new module should contain two type different types of functions:

    1. Functions that construct synthetic proton radiographs given simulated or calculated fields, either for planning an experiment or analyzing the results of one.

    2. Functions that use assumptions about symmetries etc. to "invert" experimental radiographs to recover the magnitudes of the fields that created them.

    The SyntheticProtonRadiograph object contained in this initial PR belongs to the first category. The SyntheticProtonRadiograph object is initialized with a plasmapy.plasma.grid.AbstractGrid subclass containing electric and magnetic fields, as well as the locations of the proton source and detector. A particle tracing algorithm is then run to determine the trajectories of the protons, and the resulting positions in the detector plane are used to create a synthetic radiograph (2D histogram).

    This function can currently support field data on either regular or non-uniform (although the former is much faster) to support complicated simulation meshes. Time steps are computed in an adaptive manner based on both the fields currently experienced by the particles and the grid resolution. Source and detector positions can be specified anywhere in Cartesian, cylindrical, or spherical coordinates systems to re-create geometric effects.

    The example fields generated within the function for testing and demonstration are intentionally simple, but this technique can re-create complicated structures, such as this off-axis radiograph of a cylindrical, radial electric field:

    SimPrad

    Diagnostics 
    opened by pheuer 36
  • [DRAFT] Add Particle scattering and stopping to the charged particle radiography class

    [DRAFT] Add Particle scattering and stopping to the charged particle radiography class

    This PR adds particle scattering and stopping in dense matter to the charged particle radiography Tracker class. This capability is important for charged particle radiography in dense plasmas where these effects significantly affect the radiograph.

    Builds on #1799, so merge that first.

    Note: should compare this implementation of scattering + stopping to the MPRAD code described here: https://aip.scitation.org/doi/full/10.1063/1.5123392

    Replaces a previous PR (#1802) because I needed to completely refactor after #1799

    opened by pheuer 3
  • Change signature of `CustomParticle` and improve |ParticleList| compatibility with |Quantity| objects

    Change signature of `CustomParticle` and improve |ParticleList| compatibility with |Quantity| objects

    This PR makes the following changes:

    • Changed the signature of CustomParticle to CustomParticle(*quantities, ...), where quantities can include Quantity objects of physical type mass or charge, or (as its last item) the symbol. See #1873 for some motivation and follow-up discussion. This is a follow-up attempt to do more or less the same thing as #1364, which didn't get merged. Closes #1873.
    • Fixed a new edge case in the particle factory function by assuming that a string passed as the first positional argument to it is meant for Particle and not as a symbol for CustomParticle.
    • Made ParticleList.__init__ accept an iterable containing Quantity objects. Closes #1872.
    • Made ParticleList methods accept Quantity objects of mass or electrical charge.

    The changes to CustomParticle made the changes to ParticleList pretty straightforward to implement, so I addressed them here.

    This PR should make it easier to address #1869 and #1871.

    Particles Status: in progress 
    opened by namurphy 3
  • Improve flexibility of `Quantity` arguments provided  to `CustomParticle`

    Improve flexibility of `Quantity` arguments provided to `CustomParticle`

    Feature description

    I'd like it to be possible to put the mass and charge of a CustomParticle in either order as positional arguments. For example, I would like to be able to do:

    >>> CustomParticle(1 * u.C)
    >>> CustomParticle(1 * u.kg)
    >>> CustomParticle(1 * u.kg, 1 * u.C)
    >>> CustomParticle(1 * u.C, 1 * u.kg)
    

    Motivation

    While working on #1871 and #1872, I've been having to do a bunch of special handling for when the input to CustomParticle is a charge or a mass, including when writing tests. Code downstream of CustomParticle will be cleaner if we have this flexibility.

    Implementation strategy

    Right now the signature of CustomParticle.__init__ is:

    def __init__(self, mass: u.kg = None, charge: (u.C, Real) = None, symbol=None):
    

    I'd like to be able to do CustomParticle(1e-27 * u.kg) or CustomParticle(1e-18 * u.C), which would correspond to a signature like:

    def __init__(self, *quantities, symbol=None):
    

    This change would lead to breaking changes, so we might want to retain mass and charge as keyword arguments, even if we deprecate them. We could perhaps even make it so that if a string is provided in quantities, it would get interpreted as the symbol (though quantities might not be the best name in that case).

    Additional context

    This is inspired by #1364 and discussed further in #1872. This should be addressed after #1866 is merged since they're both working on the same section of code.

    Feature request 
    opened by namurphy 3
  • Make `ParticleList` compatible with `Quantity` objects with physical type of mass or electrical charge

    Make `ParticleList` compatible with `Quantity` objects with physical type of mass or electrical charge

    Feature description

    Right now if we try to create a ParticleList using a Quantity array, we get an InvalidParticleError:

    >>> import astropy.units as u
    >>> ParticleList([5, 6] * u.kg)
    plasmapy.particles.exceptions.InvalidParticleError: The object 5.0 kg supplied to ParticleList is not a particle-like object.
    

    What I'd like to happen is for a CustomParticle to be created based on each element of the Quantity array, i.e.:

    >>> ParticleList([5, 6] * u.kg)
    ParticleList(['CustomParticle(mass=5.0 kg, charge=nan C)', 'CustomParticle(mass=6.0 kg, charge=nan C)'])
    

    Motivation

    As part of the refactoring of particle_input in #1057, we're making it so that a Quantity of physical type mass or electrical charge will be used to construct a CustomParticle instance. I discovered in #1871 that ParticleList works for Quantity non-arrays but not for Quantity arrays. The code downstream of ParticleList will be cleaner and have fewer special cases to handle if ParticleList can handle Quantity iterables of these physical types.

    Implementation strategy

    We'll need to make these changes to not only ParticleList.__init__, but also the append, extend, and insert methods.

    There's some repeated code in these methods, so it might be worth creating a private function that does the particleification or particlizing.

    Additional context

    Implementing this would probably be cleaner by allowing mass and charge as positional arguments in either order in CustomParticle, kind of like what I attempted in #1364, but maybe having a signature like CustomParticle(*quantities, mass: Optional[u.kg] = None, charge=Optional[u.C] = None, symbol: Optional[str]=None).

    Feature request 
    opened by namurphy 2
  • Update relativistic functionality

    Update relativistic functionality

    Description

    • Applied particle_input to relativistic_energy and RelativisticBody
    • Updated docstrings
    • Changed the parameters provided to relativistic_energy:
      • Changed m to particle
      • Changed v to V This would be a breaking change; however, when provided as positional arguments, the change would be transparent. In particular, particle_input would create a CustomParticle from a Quantity for mass.

    Motivation and context

    The goals here are

    • To further implement particle_input in plasmapy.formulary for more compatibility with ParticleList and CustomParticle objects.
    • To improve consistency with function signatures. For example, we mostly use V instead of v to describe velocity, and it helps to be consistent.

    I'm wondering if it would be worth having a deprecation warning for this and still accept the old parameters as keywords, but relativistic_energy might not be widely used enough to warrant the extra complexity this would entail.

    Related issues

    This is approximately 4% of #341!

    Formulary Status: on hold 
    opened by namurphy 3
  • Create a decorator to track relevant citations

    Create a decorator to track relevant citations

    Feature description

    A decorator that attaches references (as BibTex entries?) to objects in PlasmaPy. A helper function would then exist that, given a list of functions, would assemble a list of references (recursively) for that object.

    For example, if the user's code relies on X, but X relies on Y and Z, then the reference manager should return the references associated with all three, perhaps saved as output to a text file that can be directly copied in to Bibtex.

    The helper function could also (maybe by setting a keyword?) include citations for other packages used within the PlasmaPy functionality (e.g. scipy, numpy, etc.)

    Inspired by: https://github.com/duecredit/duecredit

    Motivation

    • Provides a natural place to record relevant references in the code, and consequently adding and updating these references would be covered by the existing code review process.
    • Encourage citation of software!

    Implementation strategy

    See feature description

    Additional context

    No response

    Feature request 
    opened by pheuer 3
Releases(v0.9.1)
  • v0.9.1(Nov 15, 2022)

  • v0.9.0(Nov 11, 2022)

    You can find the full changelog for this release at https://github.com/PlasmaPy/PlasmaPy/blob/v0.9.x/docs/whatsnew/0.9.0.rst .

    New Contributors

    • @MKastek made their first contribution in https://github.com/PlasmaPy/PlasmaPy/pull/1556
    • @JaydenR2305 made their first contribution in https://github.com/PlasmaPy/PlasmaPy/pull/1664
    • @TrestanSimon made their first contribution in https://github.com/PlasmaPy/PlasmaPy/pull/1681
    • @elliotwutingfeng made their first contribution in https://github.com/PlasmaPy/PlasmaPy/pull/1764
    Source code(tar.gz)
    Source code(zip)
  • v0.8.1(Jul 5, 2022)

    Plasmapy v0.8.1 (2022-07-05)

    This release of PlasmaPy includes 158 pull requests closing 60 issues by 37 people, of which 31 are new contributors.

    The people who have contributed to the code for this release are:

    • Afzal Rao*
    • Alexis Jeandet*
    • Andrew Sheng*
    • Anna Lanteri*
    • Chris Hoang*
    • Christopher Arran*
    • Chun Hei Yip*
    • Dominik Stańczak
    • Elliot Johnson*
    • Erik Everson
    • flaixman*
    • Haman Bagherianlemraski*
    • Isaias McHardy*
    • itsraashi*
    • James Kent*
    • Joao Victor Martinelli*
    • Leo Murphy*
    • Luciano Silvestri*
    • Mahima Pannala*
    • Marco Gorelli*
    • Nick Murphy
    • Nicolas Lequette
    • Nikita Smirnov*
    • Peter Heuer
    • Pey Lian Lim*
    • Rajagopalan Gangadharan*
    • Raymon Skjørten Hansen*
    • Reynaldo Rojas Zelaya*
    • Riley Britten*
    • sandshrew118*
    • seanjunheng2*
    • Shane Brown*
    • Suzanne Nie*
    • Terrance Takho Lee*
    • Tien Vo*
    • Tiger Du
    • Tomás Stinson*

    An asterisk indicates that this release contains their first contribution to PlasmaPy.

    The changelog for this release can be found at our docs page.

    Source code(tar.gz)
    Source code(zip)
  • v0.7.0(Nov 18, 2021)

    Plasmapy v0.7.0 (2021-11-18)

    This release of PlasmaPy contains 127 commits in 73 merged pull requests closing 37 issues from 19 people, 14 of which are first-time contributors to PlasmaPy.

    • 127 commits have been added since 0.6
    • 37 issues have been closed since 0.6
    • 73 pull requests have been merged since 0.6
    • 19 people have contributed since 0.6
    • 14 of which are new contributors

    The people who have contributed to the code for this release are:

    • Alf Köhn-Seemann *
    • Andrew *
    • Armando Salcido *
    • Dominik Stańczak
    • FinMacDov *
    • Marco Gorelli *
    • Nick Murphy
    • Nicolas Lequette *
    • Peter Heuer
    • Quettle *
    • RAJAGOPALAN-GANGADHARAN *
    • Sjbrownian *
    • Tiger Du
    • Tomás Stinson *
    • bryancfoo *
    • dependabot[bot] *
    • haman80 *
    • pre-commit-ci[bot] *
    • rocco8773

    Where a * indicates that this release contains their first contribution to PlasmaPy.

    The changelog for this release can be found at our docs page.

    Source code(tar.gz)
    Source code(zip)
    plasmapy-0.7.0-py3-none-any.whl(8.25 MB)
    plasmapy-0.7.0.tar.gz(10.77 MB)
Owner
PlasmaPy
PlasmaPy will be a community developed package for plasma physics
PlasmaPy
Trading Gym is an open source project for the development of reinforcement learning algorithms in the context of trading.

Trading Gym Trading Gym is an open-source project for the development of reinforcement learning algorithms in the context of trading. It is currently

Dimitry Foures 535 Nov 15, 2022
PaddleRobotics is an open-source algorithm library for robots based on Paddle, including open-source parts such as human-robot interaction, complex motion control, environment perception, SLAM positioning, and navigation.

简体中文 | English PaddleRobotics paddleRobotics是基于paddle的机器人开源算法库集,包括人机交互、复杂运动控制、环境感知、slam定位导航等开源算法部分。 人机交互 主动多模交互技术TFVT-HRI 主动多模交互技术是通过视觉、语音、触摸传感器等输入机器人

null 185 Dec 26, 2022
source code for 'Finding Valid Adjustments under Non-ignorability with Minimal DAG Knowledge' by A. Shah, K. Shanmugam, K. Ahuja

Source code for "Finding Valid Adjustments under Non-ignorability with Minimal DAG Knowledge" Reference: Abhin Shah, Karthikeyan Shanmugam, Kartik Ahu

Abhin Shah 1 Jun 3, 2022
tsai is an open-source deep learning package built on top of Pytorch & fastai focused on state-of-the-art techniques for time series classification, regression and forecasting.

Time series Timeseries Deep Learning Pytorch fastai - State-of-the-art Deep Learning with Time Series and Sequences in Pytorch / fastai

timeseriesAI 2.8k Jan 8, 2023
Face Library is an open source package for accurate and real-time face detection and recognition

Face Library Face Library is an open source package for accurate and real-time face detection and recognition. The package is built over OpenCV and us

null 52 Nov 9, 2022
(under submission) Bayesian Integration of a Generative Prior for Image Restoration

BIGPrior: Towards Decoupling Learned Prior Hallucination and Data Fidelity in Image Restoration Authors: Majed El Helou, and Sabine Süsstrunk {Note: p

Majed El Helou 22 Dec 17, 2022
Official code for the paper: Deep Graph Matching under Quadratic Constraint (CVPR 2021)

QC-DGM This is the official PyTorch implementation and models for our CVPR 2021 paper: Deep Graph Matching under Quadratic Constraint. It also contain

Quankai Gao 55 Nov 14, 2022
ICLR2021 (Under Review)

Self-Supervised Time Series Representation Learning by Inter-Intra Relational Reasoning This repository contains the official PyTorch implementation o

Haoyi Fan 58 Dec 30, 2022
Regularizing Generative Adversarial Networks under Limited Data (CVPR 2021)

Regularizing Generative Adversarial Networks under Limited Data [Project Page][Paper] Implementation for our GAN regularization method. The proposed r

Google 148 Nov 18, 2022
Learning to trade under the reinforcement learning framework

Trading Using Q-Learning In this project, I will present an adaptive learning model to trade a single stock under the reinforcement learning framework

Uirá Caiado 470 Nov 28, 2022
Pytorch implementation of our paper under review — Lottery Jackpots Exist in Pre-trained Models

Lottery Jackpots Exist in Pre-trained Models (Paper Link) Requirements Python >= 3.7.4 Pytorch >= 1.6.1 Torchvision >= 0.4.1 Reproduce the Experiment

Yuxin Zhang 27 Jun 28, 2022
Official implementation of "Not only Look, but also Listen: Learning Multimodal Violence Detection under Weak Supervision" ECCV2020

XDVioDet Official implementation of "Not only Look, but also Listen: Learning Multimodal Violence Detection under Weak Supervision" ECCV2020. The proj

peng 64 Dec 12, 2022
Boost learning for GNNs from the graph structure under challenging heterophily settings. (NeurIPS'20)

Beyond Homophily in Graph Neural Networks: Current Limitations and Effective Designs Jiong Zhu, Yujun Yan, Lingxiao Zhao, Mark Heimann, Leman Akoglu,

GEMS Lab: Graph Exploration & Mining at Scale, University of Michigan 70 Dec 18, 2022
Pytorch implementation for "Adversarial Robustness under Long-Tailed Distribution" (CVPR 2021 Oral)

Adversarial Long-Tail This repository contains the PyTorch implementation of the paper: Adversarial Robustness under Long-Tailed Distribution, CVPR 20

Tong WU 89 Dec 15, 2022
Neural Factorization of Shape and Reflectance Under An Unknown Illumination

NeRFactor [Paper] [Video] [Project] This is the authors' code release for: NeRFactor: Neural Factorization of Shape and Reflectance Under an Unknown I

Google 283 Jan 4, 2023
Code for Quantifying Ignorance in Individual-Level Causal-Effect Estimates under Hidden Confounding

?? quince Code for Quantifying Ignorance in Individual-Level Causal-Effect Estimates under Hidden Confounding ?? Installation $ git clone [email protected]

Andrew Jesson 19 Jun 23, 2022
PyTorch evaluation code for Delving Deep into the Generalization of Vision Transformers under Distribution Shifts.

Out-of-distribution Generalization Investigation on Vision Transformers This repository contains PyTorch evaluation code for Delving Deep into the Gen

Chongzhi Zhang 72 Dec 13, 2022