How to use tensorboard debugger with pytorch? - neural-network

I know pytorch starts to support tensorboard since the version 1.11. But I am wondering is it possible for us to use the debugger plugin for tensorboard with pytorch? I didn't find any information about this. If pytorch can also support tensorboard debugger, it would be extremely convenient and could save us a lot of time.

No, it is not and to doubt it ever will be possible. The plugin heavily relies on how TensorFlow internally represents graph nodes which is quite different in PyTorch.

Related

Looking for advise to create my first neural network to classify text

I am very new in this field and I would like to create a Neural Network to classify a dataset that I have in MongoDB. I would like some advise about where should I start, what technology should I use or any tutorial that you think it can help.
If you know about any open source code that already does this, I would love to take a look at it.
Thank you !!
Pick a platform
In essence, you should pick a platform or framework that does much of the dirty work for you and read up on some tutorials for that.
The big choice is between natural language processing frameworks such as NLTK or spaCy or Stanford NLP tools; or a generic machine learning framework such as Tensorflow or PyTorch.
Text classification is a popular task that's reasonably entry-level, is well supported by pretty much everything (so it's not much to say there in a shopping question, pick whatever you like) and would have a bunch of tutorials available online for any major platform.

Any pytorch tools to monitor neural network's training?

Are there any tools to monitor network's training in PyTorch? Like tensorboard in tensorflow.
PyTorch 1.1.0 supports TensorBoard natively with torch.utils.tensorboard. The API is very similar to tensorboardX. See the documentation for more details.
I am using tensorboardX. It supports most (if not all) of the features of TensorBoard. I am using the Scalar, Images, Distributions, Histograms and Text. I haven't tried the rest, like audio and graph, but the repo also contains examples for those use cases. The installation can be done easily with pip. It's all explained in the README file of the repo.
There are also other github repos which implement a wrapper for PyTorch (and other languages/frameworks) to tensorboard. As far as I know they support fewer functionalities. But have a look at:
Crayon
Tensorboard-Logger
I have asked this question before in the forums. Tensorboard seems very convenient for Tensorflow and it is also made part of the library/framework itself. However, PyTorch wouldn't take the same approach. But there is a library called visdom here that is released by Facebook, that helps you log the training information. This gives you the flexibility of logging information the way you want. While this means a lot of flexibility, it also means you need to write some extra code to make things work.
Following up on blckbird's answer, I'm also a big fan of Tensorboard-PyTorch. However I also found that its API is relatively low level and I was writing a lot of similar code over and over to do the logging. So (shameless plug) I've written a small package on top of it to automate monitoring network training experiments with minimal code. Hopefully someone else finds it helpful. pytorch-monitor
Minetorch helps me a lot at the past 2 Kaggle competitions. I think it's ready for others to use. It has built-in tensorboard or matplotlib supported. And many other features which make the work easy, includes:
Logger
Tensorboard supported
Matplotlib (to generate png to file)
Auto resume training
Auto best model saving
Hook points for customize
...
It's still in developing so any issues or PRs are very welcomed : )

What is the difference between TF Learn (aka Scikit Flow) and TFLearn (aka TFLearn.org)

There are two TFLearn projects
TF Learn (aka Scikit Flow)
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/learn/python/learn
and
TFLearn: Deep learning library featuring a higher-level API for TensorFlow.
https://github.com/tflearn/tflearn
what is the status of these projects, are they going to stay separate or they going to merged together?
TF.Learn is a built-in module inside TensorFlow built by Googlers and outside contributors. It's originally called skflow (Scikit Flow). It is for both deep learning as well as general machine learning. You can find the official tutorials on TensorFlow website.
Tflearn is actually a separate package, which doesn't come with the standard tensorflow distribution. One needs to do pip install tflearn to actually install it. It seems the models included in tflearn are very limited (mainly DNN) but no linear classifiers for example, whereas tf.contrib.learn has more models, e.g.:
tf.contrib.learn.LinearClassifier

Why was MLP Classifier deprecated in Apache Mahout?

I am wondering why MultiLayerPerceptron http://apache.github.io/mahout/0.10.1/docs/mahout-mr/index.html?org/apache/mahout/classifier/mlp/MultilayerPerceptron.html and all classes within MLP Package of Apache Mahout were deprecated. This was done as part of https://issues.apache.org/jira/browse/MAHOUT-1676. The JIRA issue doesn't mention about any reasons for doing so. I was planning to use this classifier in my project but since it is deprecated I am now hesitant to use it. I don't see any alternative version of classes to be used as mentioned in the Javadoc . Does anyone using Mahout for MLP has any idea?
I'm not sure how to answer this because it's basically off-topic. The mahout team considers that the MLP isn't used much by the community and it's painful to maintain so far. Thus they've decided to remove it since there exist other good implementations of it in other frameworks.

Titan Graph Database Modularity/Community Detection

Is anyone aware of an existing way to execute a modularity (community detection) algorithm on a Titan graph? I'm looking for something like Gephi's modularity feature which I believe uses https://sites.google.com/site/findcommunities/.
The Gephi Toolkit appears to provide an implementation of this algorithm, which could be an option. Has anyone experimented with loading a Titan graph using the Gephi Toolkit via the Blueprints plugin?
One requirement is that this all needs to happen automatically and in-place. Meaning, I cannot export the graph as another format or manually run modularity detection using something like the Gephi Desktop Application.
Perhaps this doesn't exactly answer the question, but for Blueprints-enabled graphs like Titan, the best option for doing this type of analysis is through Furnace. Though Furnace is still under development there is a clustering algorithm present as an example:
https://github.com/tinkerpop/furnace/blob/master/src/main/java/com/tinkerpop/furnace/algorithms/vertexcentric/programs/clustering/PeerPressureVertexProgram.java
Sounds like this just doesn't exist yet.
https://groups.google.com/forum/#!searchin/aureliusgraphs/modularity/aureliusgraphs/iS4Wj7XZjp8/TkFMyFDAclkJ
I ended up using the gephi toolkit and writing some REALLY ugly wrapper hacks to utilize the Modularity class with a TitanGraph.