Metadata-Version: 2.1
Name: torch-snippets
Version: 0.321
Summary: One line functions for common tasks
Home-page: https://github.com/sizhky/torch_snippets/tree/master/
Author: Yeshwanth Reddy
Author-email: 1992chinna@gmail.com
License: Apache Software License 2.0
Description: # Pytorch utilities for simple pytorch needs
        
        ## Logging and plotting metrics
        ```python
        from torch_snippets import Report
        
        n_epochs = 5
        log = Report(n_epochs)
        
        for epoch in range(n_epochs):
            # No need to --> train_epoch_losses, train_epoch_accuracies = [], []
            N = len(trn_dl)
            for ix, batch in enumerate(iter(trn_dl)):
                ...
                pos = (epoch + (ix+1)/N) # a float between 0 - n_epochs
                # give any number of kwargs that need to be reported and stored.
                # args should be float
                log.record(pos=pos, train_acc=np.mean(is_correct), train_loss=batch_loss, end='\r') # impersistent log
        
            N = len(val_dl)
            for ix, batch in enumerate(iter(val_dl)):
                ...
                pos = (epoch + (ix+1)/N) # a float between 0 - n_epochs
                log.record(pos=pos, val_loss=batch_loss, end='\r') # impersistent log
            log.report_avgs(epoch+1) # persist the report
        
        ```
        ![](assets/demo.gif)
        * Auto calculates time remaining
        * No need to preinitialize empty lists
        * Automatically stores metrics as collection of key words
        * Persistent vs Transient logging (use `end='\r'`)  
        ```python
        >>> print(log.logged) # get logged metric names
        # ['train_loss', 'train_acc', 'val_loss', 'val_acc']
        >>> log.plot() # plot all the logged metrics
        ```
        
        
        * Auto calculates average of all metrics in an epoch
        * Plot entire training history with one command  
        ![](assets/avgs0.png)
        
        
        * selectively plot logged metrics using regex
        ```python
        >>> log.plot('*_loss')
        # or you can list out the metrics that need plotting
        # >>> log.plot(['train_acc','val_acc'])
        ```
        ![](assets/avgs1.png)
        
        ## Auxiliary Functions
        There are simple functions that are overloaded to take inputs and perform repetitive tasks that usually take a few lines to write
        #### Images
        `show`, `inspect`, `Glob`, `read`
        #### FilePaths
        `stem`, `Glob`, `parent`, `name`
        #### Dump and load python objects
        `loaddill`,`dumpdill`
        #### Misc 
        `Tqdm`, `Timer`, `randint`, `unique`, `diff`
        #### Pytorch Modules
        `Reshape` and `Permute` (`nn.Modules`)
        
        
        and many more... 
         
        ## Install
        `pip install torch_snippets`
        
        ## Usage
        ```python
        import pytorch_snippets
        dir(pytorch_snippets)
        ```
        
Keywords: snippets,torch
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Requires-Python: >=3.6
Description-Content-Type: text/markdown
