Comments (4)
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.
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.
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.
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)
- Not able to use my own callbacks HOT 3
- Tensorflow-directml is not making any difference in processing times in GPU vs CPU HOT 1
- AMD APU support? HOT 2
- Cannot assign a device for operation embedding/embeddings/Initializer/random_uniform/ HOT 5
- directml on custom tensoflow build ? HOT 1
- Windows Camera post process(DMFT) with DirectML(Tensorflow) HOT 10
- It's not working on Intel Graphics 5500 HOT 1
- Use c api to load pb models HOT 1
- how to set the default device using cAPI?
- session run crashed when runing on nvidia gpu HOT 1
- Could not identify NUMA node of platform GPU ID 0, defaulting to 0. Your kernel may not have been built with NUMA support. HOT 2
- unbox expects Dml at::Tensor as inputs HOT 1
- Is it not supports the amd gpus without rocm?
- Does directml support multi-GPU training
- TensorFlow-DirectML Does Not Exist HOT 7
- AttributeError: module 'tensorflow' has no attribute 'float32' HOT 1
- CPU instructions notification after installing
- python newer versions support
- tensorflow GPU on WSL2 produces a segmentationfault
- RC astro tool operations not supported in DirectML HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tensorflow-directml.