I am trying to understand how to use "Parameter Layer" in caffe https://caffe.berkeleyvision.org/tutorial/layers/parameter.html
and how it might be useful in defining the network. Does anyone have an example .prototxt (e.g. MNIST, etc.) of how it can be utilized?
Related
I am new to deep-learning and I will do something on fashion-mnist.
And I come to found that the hyperparameter of parameter "transform" can be callable and optional and I found that it can be ToTensor().
What can I use as a transform's hyperparameter? Where do I find it?
Actually, I am watching :
https://pytorch.org/vision/stable/datasets.html#fashion-mnist
But I got no answer about it. Help me please. Thank you.
As you noted, transform accepts any callable. As there are a lot of transformations that are commonly used by the broader community, many of them are already implemented by libs such as torchvision, torchtext, and others. As you intend to work on FashionMNIST, you can see a list of vision-related transformations in torchvision.transforms:
Transforms are common image transformations. They can be chained together using Compose. Most transform classes have a function equivalent: functional transforms give fine-grained control over the transformations. This is useful if you have to build a more complex transformation pipeline (e.g. in the case of segmentation tasks).
You can check more transformations in other vision libs, such as Albumentations.
I am doing a meta learning research and am using the MAML optimization provided by learn2learn. However as one of the baseline, I would like to test a non-meta-learning approach, i.e. the traditional training + testing.
Due to the lightning's internal usage of optimizer it seems that it is difficult to make the MAML work with learn2learn in lightning, so I couldn't use lightning in my meta-learning setup, however for my baseline, I really like to use lightning in that it provides many handy functionalities like deepspeed or ddp out of the box.
Here is my question, other than setting up two separate folders/repos, how could I mix the vanilia pytorch (learn2learn) with pytorch lightning (baseline)? What is the best practice?
Thanks!
Decided to answer my question. So I ended up using the torch lightning's manual optimization so that I can customize the optimization step. This would make both approaches using the same framework, and I think is better than maintaining 2 separate repos.
Torchscript provides torch.jit.trace and torch.jit.script to convert pytorch code from eager mode to script model. From the documentation, I can understand torch.jit.trace cannot handle control flows and other data structures present in the python. Hence torch.jit.script was developed to overcome the problems in torch.jit.trace.
But it looks like torch.jit.script works for all the cases, then why do we need torch.jit.trace?
Please help me understand the difference between these two methods
If torch.jit.script works for your code, then that's all you should need. Code that uses dynamic behavior such as polymorphism isn't supported by the compiler torch.jit.script uses, so for cases like that, you would need to use torch.jit.trace.
I began to work with MLeap as a serialization tool that allows to save model in Spark or scikit-learn and load it for inference using MLeap Runtime. It works well.
Now my purpose is to load a model saved using MLeap into my Java code, into my own structures, without MLeap Runtime. I investigated a bit and haven't found any "format definitions" of "schema", only examples that show how some serialized models look like. From that perspective it looks like MLeap is just a serialization/deserialization tool, not a "format" as it's declared on the main page of documentation.
So, is MLeap a "format" or just a serialization tool? Can I found a format definition or schema somewhere?
And again, my purpose is to understand if it's possible to write a custom serialization/deserialization tool for MLeap format or the only option is to use MLeap tools for that?
I would say, that Mleap is a framework to put models to production without the overhead of the frameworks in which you trained them. This leads to the desired low latency. De-/Serialization is definetly an important part of that and you in fact got some freedom to store your pipelines.
I recommend having a look at the bundles you create (zip files) using Mleap which contain the exported pipelines. Most of the serialisations are easy to comprehend: a logistic regression is contained in a jsonfile for example that has the identifier of the pipeline element and the coefficients. Basically what defines the logistic regression model.
I'm trying to get some insights into reinforcement learning while using openAI gym as a learning environment. I do this by reading the book Hands-on reinforcement learning with Python. In this book, some code is provided. Often, the code doesn't work, because I have to unwrap it first, as shown in: openai gym env.P, AttributeError 'TimeLimit' object has no attribute 'P'
However, I personally am still interested in the WHY of this unwrapping. Why do you need to unwrap? What does this do exactly? And why isn't it coded like that in the book? Is it outdated software as Giuliov assumed?
Thanks in advance.
Open AI Gym offers many different environments. Each of them with their own set of parameters and methods. Nevertheless they generally are wrapped by a single Class (like an interface on real OOPLs) called Env. This class exposes the common most essential methods of any environment, like step, reset and seed. Having this “interface” class is great, because it allows your code to be environment agnostic. It is also makes things easier if you want to test a single agent on different environments.
However, if you want to access the behind-the.scenes dynamics of a specific environment, then you use the unwrapped property.