PyDEns is a framework for solving Ordinary and Partial Differential Equations (ODEs & PDEs) using neural networks

Overview

License Python TensorFlow Run Status

PyDEns

PyDEns is a framework for solving Ordinary and Partial Differential Equations (ODEs & PDEs) using neural networks. With PyDEns one can solve

This page outlines main capabilities of PyDEns. To get an in-depth understanding we suggest you to also read the tutorial.

Getting started with PyDEns: solving common PDEs

Let's solve poisson equation

using simple feed-forward neural network with tanh-activations. The first step is to add a grammar of tokens - expressions used for writing down differential equations - to the current namespace:

from pydens import Solver, NumpySampler, add_tokens
import numpy as np

add_tokens()
# we've now got functions like sin, cos, D in our namespace. More on that later!

You can now set up a PyDEns-model for solving the task at hand using configuration dictionary. Note the use of differentiation token D and sin-token:

pde = {'n_dims': 2,
       'form': lambda u, x, y: D(D(u, x), x) + D(D(u, y), y) - 5 * sin(np.pi * (x + y)),
       'boundary_condition': 1}

body = {'layout': 'fa fa fa f',
        'units': [15, 25, 15, 1],
        'activation': [tf.nn.tanh, tf.nn.tanh, tf.nn.tanh]}

config = {'body': body,
          'pde': pde}

us = NumpySampler('uniform', dim=2) # procedure for sampling points from domain

and run the optimization procedure

dg = Solver(config)
dg.fit(batch_size=100, sampler=us, n_iters=1500)

in a fraction of second we've got a mesh-free approximation of the solution on [0, 1]X[0, 1]-square:

Going deeper into PyDEns-capabilities

PyDEns allows to do much more than just solve common PDEs: it also deals with (i) parametric families of PDEs and (ii) PDEs with trainable coefficients.

Solving parametric families of PDEs

Consider a family of ordinary differential equations

Clearly, the solution is a sin wave with a phase parametrized by ϵ:

Solving this problem is just as easy as solving common PDEs. You only need to introduce parameter in the equation, using token P:

pde = {'n_dims': 1,
       'form': lambda u, t, e: D(u, t) - P(e) * np.pi * cos(P(e) * np.pi * t),
       'initial_condition': 1}

config = {'pde': pde}
# One for argument, one for parameter
s = NumpySampler('uniform') & NumpySampler('uniform', low=1, high=5)

dg = Solver(config)
dg.fit(batch_size=1000, sampler=s, n_iters=5000)
# solving the whole family takes no more than a couple of seconds!

Check out the result:

Solving PDEs with trainable coefficients

With PyDEns things can get even more interesting! Assume that the initial state of the system is unknown and yet to be determined:

Of course, without additional information, the problem is undefined. To make things better, let's fix the state of the system at some other point:

Setting this problem requires a slightly more complex configuring. Note the use of V-token, that stands for trainable variable, in the initial condition of the problem. Also pay attention to train_steps-key of the config, where two train steps are configured: one for better solving the equation and the other for satisfying the additional constraint:

pde = {'n_dims': 1,
       'form': lambda u, t: D(u, t) - 2 * np.pi * cos(2 * np.pi * t),
       'initial_condition': lambda: V(3.0)}

config = {'pde': pde,
          'track': {'u05': lambda u, t: u - 2},
          'train_steps': {'initial_condition_step': {'scope': 'addendums',
                                                     'loss': {'name': 'mse', 'predictions': 'u05'}},
                          'equation_step': {'scope': '-addendums'}}}

s1 = NumpySampler('uniform')
s2 = ConstantSampler(0.5)

Model-fitting comes in two parts now: (i) solving the equation and (ii) adjusting initial condition to satisfy the additional constraint:

dg.fit(batch_size=150, sampler=s1, n_iters=2000, train_mode='equation_step')
dg.fit(batch_size=150, sampler=s2, n_iters=2000, train_mode='initial_condition_step')

Check out the results:

Installation

First of all, you have to manually install tensorflow, as you might need a certain version or a specific build for CPU / GPU.

Stable python package

With modern pipenv

pipenv install pydens

With old-fashioned pip

pip3 install pydens

Development version

pipenv install git+https://github.com/analysiscenter/pydens.git
pip3 install git+https://github.com/analysiscenter/pydens.git

Installation as a project repository:

Do not forget to use the flag --recursive to make sure that BatchFlow submodule is also cloned.

git clone --recursive https://github.com/analysiscenter/pydens.git

In this case you need to manually install the dependencies.

Citing PyDEns

Please cite PyDEns if it helps your research.

Roman Khudorozhkov, Sergey Tsimfer, Alexander Koryagin. PyDEns framework for solving differential equations with deep learning. 2019.
@misc{pydens_2019,
  author       = {Khudorozhkov R. and Tsimfer S. and Koryagin. A.},
  title        = {PyDEns framework for solving differential equations with deep learning},
  year         = 2019
}
Comments
  • compilation error in Google Collab

    compilation error in Google Collab

    I am getting compilation error in the coding line given below...Kindly tell me ....how to fix it.... I am using google collab for compilation

    dg = Solver(config) dg.fit(batch_size=50, sampler=s, n_iters=300, bar='notebook')

    OperatorNotAllowedInGraphError Traceback (most recent call last) in () ----> 1 dg = Solver(config) 2 dg.fit(batch_size=50, sampler=s, n_iters=300, bar='notebook')

    15 frames /usr/local/lib/python3.6/dist-packages/tensorflow_core/python/framework/ops.py in _disallow_in_graph_mode(self, task) 521 raise errors.OperatorNotAllowedInGraphError( 522 "{} is not allowed in Graph execution. Use Eager execution or decorate" --> 523 " this function with @tf.function.".format(task)) 524 525 def _disallow_bool_casting(self):

    OperatorNotAllowedInGraphError: iterating over tf.Tensor is not allowed in Graph execution. Use Eager execution or decorate this function with @tf.function.

    opened by sumantkrsoni 11
  • "No module named 'pydens.batchflow' "

    I'm using Spyder3 to run this code:

    ` import pydens as pde from pydens import D import numpy as np import tensorflow as tf

    pde.add_tokens()

    pde = {'n_dims': 2, 'form': lambda u, x, y: D(D(u, x), x) + D(D(u, y), y) - 5 * pde.sin(np.pi * (x + y)), 'boundary_condition': 1}

    body = {'layout': 'fa fa fa f', #estrutura da rede neural (layers) 'units': [15, 25, 15, 1], #neurônios por camada 'activation': [tf.nn.tanh, tf.nn.tanh, tf.nn.tanh]} #ativação advinda do TFlow

    config = {'body': body, 'pde': pde}

    us = pde.NumpySampler('uniform', dim=2)

    dg = pde.Solver(config) dg.fit(batch_size=100, sampler=us, n_iters=1500) ` ...and I'm getting this error:

    `File "C:\Users\my_user\Anaconda3\lib\site-packages\pydens\letters.py", line 20, in from .batchflow.models.tf.layers import conv_block

    ModuleNotFoundError: No module named 'pydens.batchflow'`

    My tersorflow are actualized and I got PyDEns and Batchflow with pip on conda terminal.

    opened by adsmendesdaniel 9
  • How can I change the interval of x

    How can I change the interval of x

    Hello Everyone I want to change the interval of x. Instead of using the default one [0,1], I want to have [1, 1.5] so I can define my boundary conditions in these two points? How could I modify the code?

    opened by katayooneshkofti 3
  • How to install easily with PIP command?

    How to install easily with PIP command?

    Dear Guys I am extremely interested in working with your product but I have a problem installing the packages. I installed using different ways but I faced "No module named 'pydens.batchflow'" and I do not have any idea to solve it. I will appreciate it if could do a favor of installing.

    Thanks in advanced

    opened by hossein-amini67 2
  • Compilation error

    Compilation error

    Hello, I want to code according to the pydens and during compilation I am using an error at "dg solver line". Kindly fix it ASAP so that I can move further to code my problem.

    I am using tensorflow 1.15 version ======================code================

    %tensorflow_version 1.x import os import sys

    Stop TF from showing unnecessary deprecation warnings

    import warnings warnings.filterwarnings('ignore') from tensorflow import logging logging.set_verbosity(logging.ERROR) os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

    import numpy as np import tensorflow as tf from tqdm import tqdm_notebook import matplotlib.pyplot as plt

    sys.path.append('..') # this line is not needed if PyDEns is installed as package from pydens import Solver, NumpySampler, cart_prod, add_tokens from pydens import plot_loss, plot_pair_1d, plot_2d, plot_sections_2d, plot_sections_3d

    add_tokens()

    describing pde-problem in pde-dict

    pde = { 'n_dims': 1, 'form': lambda u, t: D(u, t) - 2 * np.pi * cos(2 * np.pi * t), 'initial_condition': 1 }

    put it together in model-config

    config = { 'pde': pde, 'track': {'dt': lambda u, t: D(u, t)} # allows to later fetch this value from the model }

    uniform sampling scheme

    s = NumpySampler('uniform')

    train the network on batches of 100 points

    dg = Solver(config) dg.fit(batch_size=100, sampler=s, n_iters=2000, bar='notebook')

    plot_loss(dg.loss, color='cornflowerblue')

    plot real solution and network approximation

    pts = np.linspace(0, 1, 200).reshape(-1, 1) sol = lambda t: np.sin(2 * np.pi * t) + 1 true = [sol(t[0]) for t in pts] approxs = dg.solve(pts)

    plt.plot(pts, true, 'b--', linewidth=3, label='True solution') plt.plot(pts, approxs, 'r', label='Network approximation') plt.xlabel(r'$t$', fontdict={'fontsize': 14}) plt.legend() plt.show()

    plot approximation of solution-derivative

    der = lambda t: 2 * np.pi * np.cos(2 * np.pi * t) true_der = [der(t[0]) for t in pts] ders = dg.solve(pts, fetches='dt')

    plt.plot(pts, true_der, 'b--', linewidth=3, label=r'True derivative') plt.plot(pts, ders, 'r', label=r'Network approximation of $\frac{d u}{d t}$') plt.xlabel(r'$t$', fontdict={'fontsize': 14}) plt.legend() plt.show()

    plot_pair_1d(model=dg, solution=lambda t: np.sin(2np.pit)+1, confidence=0.15, alpha=0.2)

    plot_pair_1d(model=dg, solution=lambda t: 2 * np.pi * np.cos(2 * np.pi * t), fetches='dt')


    ======================error is==================== OperatorNotAllowedInGraphError Traceback (most recent call last) in () 40 41 # train the network on batches of 100 points ---> 42 dg = Solver(config) 43 dg.fit(batch_size=100, sampler=s, n_iters=2000, bar='notebook') 44

    15 frames /tensorflow-1.15.2/python3.6/tensorflow_core/python/framework/ops.py in _disallow_in_graph_mode(self, task) 521 raise errors.OperatorNotAllowedInGraphError( 522 "{} is not allowed in Graph execution. Use Eager execution or decorate" --> 523 " this function with @tf.function.".format(task)) 524 525 def _disallow_bool_casting(self):

    OperatorNotAllowedInGraphError: iterating over tf.Tensor is not allowed in Graph execution. Use Eager execution or decorate this function with @tf.function.

    opened by sumantkrsoni 2
  • "SyntalxTreeNode" object not iterable error

    While running the solved example:

    import os
    import warnings
    import sys
    
    warnings.filterwarnings('ignore')
    from tensorflow import logging
    logging.set_verbosity(logging.ERROR)
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
    
    import numpy as np
    import tensorflow as tf
    from tqdm import tqdm_notebook
    import matplotlib.pyplot as plt
    
    sys.path.append('..')
    from pydens import Solver, NumpySampler, cart_prod
    from pydens import plot_loss, plot_2d, plot_pair_1d, plot_sections_2d, plot_sections_3d
    
    from pydens import add_tokens
    add_tokens()
    
    # describing pde-problem in pde-dict
    pde = {'n_dims': 1,
           'form': lambda u, t: D(u, t) - 2 * np.pi * cos(2 * np.pi * t),
           'initial_condition': 1 # will be transformed into callable returning 1
          }
    
    # put it together in model-config
    config = {'pde': pde,
              'track': {'dt': lambda u, t: D(u, t)}}
    
    # uniform sampling scheme
    s = NumpySampler('uniform')
    
    #
    ## train the network on batches of 100 points
    dg = Solver(config)
    

    I run into the following error: TypeError: 'SyntaxTreeNode' object is not iterable

    The stacktrace is:

    File "<ipython-input-21-1b5c74329633>", line 1, in <module>
        runfile('/home/nirvik/Documents/neuronal_model_python/temp.py', wdir='/home/nirvik/Documents/neuronal_model_python')
    
      File "/usr/lib/python3/dist-packages/spyder/utils/site/sitecustomize.py", line 705, in runfile
        execfile(filename, namespace)
    
      File "/usr/lib/python3/dist-packages/spyder/utils/site/sitecustomize.py", line 102, in execfile
        exec(compile(f.read(), filename, 'exec'), namespace)
    
      File "/home/nirvik/Documents/neuronal_model_python/temp.py", line 38, in <module>
        dg = Solver(config)
    
      File "/home/nirvik/.local/lib/python3.6/site-packages/pydens/wrapper.py", line 21, in __init__
        self.model = model_class(config)
    
      File "/home/nirvik/.local/lib/python3.6/site-packages/pydens/batchflow/batchflow/models/tf/base.py", line 262, in __init__
        super().__init__(*args, **kwargs)
    
      File "/home/nirvik/.local/lib/python3.6/site-packages/pydens/batchflow/batchflow/models/base.py", line 38, in __init__
        self.build(*args, **kwargs)
    
      File "/home/nirvik/.local/lib/python3.6/site-packages/pydens/batchflow/batchflow/models/tf/base.py", line 331, in build
        config = self.build_config()
    
      File "/home/nirvik/.local/lib/python3.6/site-packages/pydens/model_tf.py", line 117, in build_config
        n_parameters = get_num_parameters(form[0])
    
      File "/home/nirvik/.local/lib/python3.6/site-packages/pydens/syntax_tree.py", line 77, in get_num_parameters
        tree = form(*[SyntaxTreeNode('_' + str(i)) for i in range(n_args)])
    
      File "/home/nirvik/Documents/neuronal_model_python/temp.py", line 25, in <lambda>
        'form': lambda u, t: D(u, t) - 2 * np.pi * 2 * t^3,
    
      File "/home/nirvik/.local/lib/python3.6/site-packages/pydens/tokens.py", line 63, in <lambda>
        if isinstance(args[0], SyntaxTreeNode) else method_(*args, **kwargs))
    
      File "/home/nirvik/.local/lib/python3.6/site-packages/pydens/letters.py", line 82, in D
        return np.stack([self.D(func, coordinate) for coordinate in coordinates],
    ```
    
    I am new to using this package...please help.
    opened by NirvikNU 2
  • Plotting problem

    Plotting problem

    pyDens not plotting after running solver.fit() on both Jupyter notebook and google colaboratory. Using the first example from Github solver.fit() seems to run fine but I was expecting a plot of the results to appear. What am i missing?

    opened by babycamel 1
  • Torch

    Torch

    This pr adds torch-based model and solver and removes tensorflow completely. Leaves only one tutorial covering wide range of examples; updates pylint to working state.

    Classes added by this pr:

    • TorchModel
    • Solver
    • ConvBlockModel - model based on conv_block from batchflow.

    NOTE: despite the diff looking complex, there are basically two files in the library: model_torch.py and the tutorial notebook.

    opened by akoryagin 1
  • Solver and loader

    Solver and loader

    Main addition

    • Add saving and loading capabilities to a PyDEns-Solver class. Saving is done via Solver.save-method, while loading is performed by adding path-argument to a Solver-initialization procedure.
    opened by akoryagin 1
  • There are some references so I can learn the body

    There are some references so I can learn the body "layout characters/symbols"?

    For example: """ body = {'layout': 'fa f', 'units': [10, 1], 'activation': [tf.nn.tanh,]} """ This means that there are one first full connected layer with 10 units and activation "tanh" ('fa') and a final full connected layer with no activation ('f').

    But what about: """ body = {'layout': 'faR fa fa+ f', 'units': [10, 25, 10, 1], 'activation': [tf.nn.tanh, tf.nn.tanh, tf.nn.tanh]} """ What does 'R' mean? And the character '+'?

    Thank you.

    opened by adsmendesdaniel 1
  • Plotutils update

    Plotutils update

    Main additions

    • update plot utils: now all plot funcs for 3d-problems allow for three different plot-modes: imshow, contourf and 3d-view
    • move file with plot utils into pydens-module for convenient usage in tutorials
    • update tutorials using plot-funcs thus making them shorter
    opened by akoryagin 1
  • LBFGS optimizer not working

    LBFGS optimizer not working

    The code block below results in error:

    solver = Solver(equation=pde, ndims=2,constraints=constraints,domain=domain,layout='fa fa f', units=(10,20,1), activation='Sigmoid')
    solver.fit(batch_size=100, niters=5000, lr=0.01,optimizer='LBFGS')
    

    Error:

      0%|                                                                                   | 0/5000 [00:00<?, ?it/s]
    ---------------------------------------------------------------------------
    TypeError                                 Traceback (most recent call last)
    File <timed exec>:8, in <module>
    
    File D:\anaconda3\envs\pydens_gpu\lib\site-packages\pydens\model_torch.py:461, in Solver.fit(self, niters, batch_size, sampler, loss_terms, optimizer, criterion, lr, **kwargs)
        459 # Optimizer step.
        460 loss.backward()
    --> 461 self.optimizer.step()
        463 # Gather and store training stats.
        464 self.losses.append(loss.detach().cpu().numpy())
    
    File D:\anaconda3\envs\pydens_gpu\lib\site-packages\torch\optim\optimizer.py:88, in Optimizer._hook_for_profile.<locals>.profile_hook_step.<locals>.wrapper(*args, **kwargs)
         86 profile_name = "Optimizer.step#{}.step".format(obj.__class__.__name__)
         87 with torch.autograd.profiler.record_function(profile_name):
    ---> 88     return func(*args, **kwargs)
    
    File D:\anaconda3\envs\pydens_gpu\lib\site-packages\torch\autograd\grad_mode.py:27, in _DecoratorContextManager.__call__.<locals>.decorate_context(*args, **kwargs)
         24 @functools.wraps(func)
         25 def decorate_context(*args, **kwargs):
         26     with self.clone():
    ---> 27         return func(*args, **kwargs)
    
    TypeError: step() missing 1 required positional argument: 'closure'
    

    Any idea on how to use LBFGS optimizer ?

    opened by pradhyumna85 0
  • Learning from Data

    Learning from Data

    Sorry if this is obvious of a question, but is there a way to learn the PDE from data? I don't have the PDE as is shown throughout the examples https://github.com/analysiscenter/pydens/blob/master/tutorials/1.%20Solving%20PDEs.ipynb to define a function for the solver.

    opened by cadop 0
  • How to solve if Parametric heat-equation in the example has 2 or 3 boundary conditions?

    How to solve if Parametric heat-equation in the example has 2 or 3 boundary conditions?

    Hi, Can Pydens handle the PDE with more than 2 boundary conditions? In the parametric heat-equation example, would you please show me how to change the boundary condition to: case 1: u(x,y,t=0)=1000 u(x=0, y=0, t)=200 case 2: u(x,y,t=0)=1000 u(x=0, y=0, t)=200 u(xe,0)=u(-xe,0)=u(0,ye)=u(ye,0)=1000 (e represents edge, which indicates all boundaries have same value)

    opened by jingfu9402 1
  • Pyden Installation Problem

    Pyden Installation Problem

    Dear all, I have a problem installing the packages. In Jypyter notebook , Python 3; I use pip install pydens and it has installed successfully. Next when writing from pydens import Solver, NumpySampler, add_tokens getting error "module 'tensorflow' has no attribute 'layers'" Plz fix it.

    opened by Arup-nit 1
Releases(v1.0.2)
Owner
Data Analysis Center
Data Analysis Center
OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation

Build Type Linux MacOS Windows Build Status OpenPose has represented the first real-time multi-person system to jointly detect human body, hand, facia

25.7k Jan 09, 2023
Dynamic Attentive Graph Learning for Image Restoration, ICCV2021 [PyTorch Code]

Dynamic Attentive Graph Learning for Image Restoration This repository is for GATIR introduced in the following paper: Chong Mou, Jian Zhang, Zhuoyuan

Jian Zhang 84 Dec 09, 2022
UnsupervisedR&R: Unsupervised Pointcloud Registration via Differentiable Rendering

UnsupervisedR&R: Unsupervised Pointcloud Registration via Differentiable Rendering This repository holds all the code and data for our recent work on

Mohamed El Banani 118 Dec 06, 2022
This tutorial repository is to introduce the functionality of KGTK to first-time users

Welcome to the KGTK notebook tutorial The goal of this tutorial repository is to introduce the functionality of KGTK to first-time users. The Knowledg

USC ISI I2 58 Dec 21, 2022
Codebase for Inducing Causal Structure for Interpretable Neural Networks

Interchange Intervention Training (IIT) Codebase for Inducing Causal Structure for Interpretable Neural Networks Release Notes 12/01/2021: Code and Pa

Zen 6 Oct 10, 2022
Learning-based agent for Google Research Football

TiKick 1.Introduction Learning-based agent for Google Research Football Code accompanying the paper "TiKick: Towards Playing Multi-agent Football Full

Tsinghua AI Research Team for Reinforcement Learning 90 Dec 26, 2022
Bib-parser - Convenient script to parse .bib files with the ACM Digital Library like metadata

Bib Parser Convenient script to parse .bib files with the ACM Digital Library li

Mehtab Iqbal (Shahan) 1 Jan 26, 2022
TAUFE: Task-Agnostic Undesirable Feature DeactivationUsing Out-of-Distribution Data

A deep neural network (DNN) has achieved great success in many machine learning tasks by virtue of its high expressive power. However, its prediction can be easily biased to undesirable features, whi

KAIST Data Mining Lab 8 Dec 07, 2022
Posterior predictive distributions quantify uncertainties ignored by point estimates.

Posterior predictive distributions quantify uncertainties ignored by point estimates.

DeepMind 177 Dec 06, 2022
An auto discord account and token generator. Automatically verifies the phone number. Works without proxy. Bypasses captcha.

JOIN DISCORD SERVER https://discord.gg/uAc3agBY FREE HCAPTCHA SOLVING API Discord-Token-Gen An auto discord token generator. Auto verifies phone numbe

3kp 271 Jan 01, 2023
PyTorch IPFS Dataset

PyTorch IPFS Dataset IPFSDataset(Dataset) See the jupyter notepad to see how it works and how it interacts with a standard pytorch DataLoader You need

Jake Kalstad 2 Apr 13, 2022
Official implementation of NeurIPS 2021 paper "One Loss for All: Deep Hashing with a Single Cosine Similarity based Learning Objective"

Official implementation of NeurIPS 2021 paper "One Loss for All: Deep Hashing with a Single Cosine Similarity based Learning Objective"

Ng Kam Woh 71 Dec 22, 2022
This repository contains various models targetting multimodal representation learning, multimodal fusion for downstream tasks such as multimodal sentiment analysis.

Multimodal Deep Learning 🎆 🎆 🎆 Announcing the multimodal deep learning repository that contains implementation of various deep learning-based model

Deep Cognition and Language Research (DeCLaRe) Lab 398 Dec 30, 2022
Code for "SRHEN: Stepwise-Refining Homography Estimation Network via Parsing Geometric Correspondences in Deep Latent Space"

SRHEN This is a better and simpler implementation for "SRHEN: Stepwise-Refining Homography Estimation Network via Parsing Geometric Correspondences in

1 Oct 28, 2022
MazeRL is an application oriented Deep Reinforcement Learning (RL) framework

MazeRL is an application oriented Deep Reinforcement Learning (RL) framework, addressing real-world decision problems. Our vision is to cover the complete development life cycle of RL applications ra

EnliteAI GmbH 222 Dec 24, 2022
Detecting Potentially Harmful and Protective Suicide-related Content on Twitter

TwitterSuicideML Scripts for reproducing the Machine Learning analysis of the paper: Detecting Potentially Harmful and Protective Suicide-related Cont

3 Oct 17, 2022
FCOSR: A Simple Anchor-free Rotated Detector for Aerial Object Detection

FCOSR: A Simple Anchor-free Rotated Detector for Aerial Object Detection FCOSR: A Simple Anchor-free Rotated Detector for Aerial Object Detection arXi

59 Nov 29, 2022
Simple Dynamic Batching Inference

Simple Dynamic Batching Inference 解决了什么问题? 众所周知,Batch对于GPU上深度学习模型的运行效率影响很大。。。 是在Inference时。搜索、推荐等场景自带比较大的batch,问题不大。但更多场景面临的往往是稀碎的请求(比如图片服务里一次一张图)。 如果

116 Jan 01, 2023
TriMap: Large-scale Dimensionality Reduction Using Triplets

TriMap TriMap is a dimensionality reduction method that uses triplet constraints to form a low-dimensional embedding of a set of points. The triplet c

Ehsan Amid 235 Dec 24, 2022
TAug :: Time Series Data Augmentation using Deep Generative Models

TAug :: Time Series Data Augmentation using Deep Generative Models Note!!! The package is under development so be careful for using in production! Fea

35 Dec 06, 2022