Giter Club home page Giter Club logo

Comments (4)

jstoecker avatar jstoecker commented on August 22, 2024

Hi Aldo,

You're totally correct: DML devices in TF do not support DT_COMPLEX* types in any kernels at the moment. The reason is pretty simple: DirectML itself doesn't support complex numbers. This may be something we add in the future. Can share the model/script you were running that uses these types? Knowing the scenarios that people want to use DML for can help us prioritize future features.

Thanks!

from tensorflow-directml.

AldoLamarre avatar AldoLamarre commented on August 22, 2024

I was testing with the quantum circuit learner I coded for my master's.

https://github.com/AldoLamarre/quantumcircuitlearning

For quantum machine learning or even basic quantum simulations complex numbers are required. I know you can do some tricks to emulate them like it was done for PyTorch but native support is much better.

from tensorflow-directml.

jstoecker avatar jstoecker commented on August 22, 2024

Thanks for sharing this -- it's really informative!

Emulation could definitely be a path forward, and we've taken a similar approach with int64 (not all DX hardware uniformly supports it). I suspect this feature won't make the cut in the near future, since we still have some bigger issues to address in the more traditional deep learning scenarios. That said, emulating the math using existing DML APIs should make it feasible for anyone to add this, which would be an awesome contribution.

from tensorflow-directml.

AldoLamarre avatar AldoLamarre commented on August 22, 2024

I understand that it is of low priority currently, as a brand new API you have a lot on your plate. In my defence, some classical deep learning algorithms are using complex numbers like unitary recurrent neural networks who still are the subject of new research today.

As a correction, It does appear that PyTorch now has beta complex number support which it is positive news to me.

For emulation, I had in mind a higher level emulation than the int64 emulation that you are describing. What was done for PyTorch and Theano before that was to use abstract real number tensors to mimic the linear algebra operations done by complex number tensors. This can take a lot time to make work which why I was using TensorFlow as it has native supports. I'm not an expert in GPU programming, but I do not think this of sort of emulation is right for TensorFlow. In TensorFlow, the interface for complex numbers is all there it just need lower level devices that understand complex numbers.

from tensorflow-directml.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.