5 ms·
I am genuinely curious. Does it have anything comparable to the following? - pytorch or tensorflow - pandas - numpy - scipy - matplotlib - huggingface transfor
by matusp 4y ago
I am genuinely curious. Does it have anything comparable to the following?
- pytorch or tensorflow
- pandas
- numpy
- scipy
- matplotlib
- huggingface transformers
- jupyter
- deleted 4y ago[deleted]
- hervature 4y agoJupyter is a funny example because it was designed for Julia-Python-R.
- vchuravy 4y ago- Jupiter: Yes, Julia was one of the first non-python IPython/Jupiter kernel - Pandas: DataFrames.jl - Numpy: Basically the available as part of the stdlibs/language - Scipy: Yes, but not as one meta package - Matplotlib: Yes directly as Pyplot.jl or in alternatives such as Plots.jl or Makie.jl - Pytorch/Tensorflow: There are several ML Frameworks written in Julia (as well as Julia bindings to ML Frameworks) the biggest Julia native one is likely Flux.jl Regarding HF Transformers a quick Google points to https://github.com/chengchingwen/Transformers.jl https://github.com/chengchingwen/Transformers.jl but I have not had any personal experience with. All of this is build by the community and your mileage may vary. In my rather biased opinion the strengths of Julia are that the various ML libraries can share implementations, e.g. Pytorch and Tensorflow contain separate Numpy derivatives. One could say that you can write an ML framework in Julia, instead of writting a DSL in Python as part of your C++ ML library. As an example Julia has a GPU compiler so you can write your own layer directly in Julia and integrate it into your pipeline.
- oivey 4y agoA sibling pointed out that there is a bunch of this stuff already in Julia. I’ll add, though, that the ML stuff isn’t quite as mature as the whole Python ecosystem. In addition to native offerings like Flux, there are bindings to things like PyTorch, and, more generally, calling Python is pretty trivial. I’d say that Julia’s arrays are significantly better than NumPy. Julia’s broadcast operator is like ufuncs except way easier and way faster. The machinery around GPUs is better, too, in my opinion. GPU support isn’t coupled to other concerns like automatic differentiation. You can write generic code in a broadcasting style (which is, again, a lot nicer than NumPy by default) or very easily write your own kernels. Multithreading is also way better than in other scientific computing languages.