Changelogs¶
0.7¶
DL:
- Added - metabas extra metadata from dataloaders to- Learnerin the core training loop and modified- Recorderto return it if available.
- Added - noption to- AutoIncrement.
- Added - mask().
- Removed - k1lib.stats(), replaced it with- torch.Tensor.stats()directly
- Added - torch.Tensor.hasInfs()
- Made - LossNLLCrossintegrates with- AccFinstead.
- Made - AccFintegrates with- ConfusionMatrix.
- Made - ConfusionMatrixresilient against nans and infs, and fixed norm strategy (tensor rows divide by max rows, instead of tensor columns divide by max rows, like before).
Cli:
- Added - mask,- unsqueeze().
- Made - opcompatible with lots of other cli tools, so you can do stuff like- filt(op() > 3, 1).
- Removed - split, as- op().split().all() | joinStreams()does the same thing. This is longer, so I kinda want to put it back in, but the name is incredibly oxymoronic.
- Removed - listToTable()and its alias- tableFromList(), as they are too simple, and the new- unsqueeze(1)does the same thing.
- Removed - argsoption in- applyMp, as it feels clunky.
- Removed - catsas- cat().all()does the same job.
- Sped up - opto have roughly same performance as- apply. As a consequence, removed [- lstrip,- rstrip,- strip,- upper,- lower] clis as stuff like- op().upper().all()does the same and I want to simplify the collection of cli tools.
- Completely removed - k1lib.cli.ctxmodule, as the performance sacrifices are too much, and it doesn’t add a lot of useful features.
- Renamed - utils.to1Strto- joinas that is more intuitive.
- Removed - structural.table, as- op().split().all()does the same thing
0.6¶
DL:
- Added __module__ impersonation for - wrapMod.
- Renamed - LossLambdato- LossF
- Renamed - torch.nn.Module.preserveDevice()to- torch.nn.Module.deviceContext()and add preserve buffers capability.
- Added - torch.nn.Module.gradContext().
k1lib.selector.ModuleSelector:
- Renamed - filter()to- preprocess().
- Removed - selected(), as- __call__()does the same thing and is more intuitive
- Added - propoption to- named_children()and- children().
- Removed callback - Frozenas- freeze()and- unfreeze()does the job and is much more robust.
- Added - freeze()and- unfreeze()
- Removed - copy(), as you can just grab another selector straight from the model real quick.
- Removed - parameters(), as you can always access the associated- torch.nn.Moduleinside and get params from there.
Cli:
0.5¶
DL:
- Renamed - k1lib.formatto- k1lib.fmt, and exposed it automatically.
- Added - sizeOf()
- Exposed - selectorautomatically.
- Deleted - k1lib.website
- Fixed infinity elements in - landscape.Landscape’s plots.
Cli:
- Added chained mode to - item
- Fixed ignoreTensor mechanic in - deref
- Added prefetch mode in - applyMp
- Added - applyMpBatchedthat executes lots of transformations in a single job.
- Added - clearPools()and- pools().
- Added - activeSamples.
- Removed aliases - splitColumnsand- joinColumns.
- Removed - stitch, as- to1Str().all()does the same thing.
0.4¶
This update moves things around a lot. The actual coding experience stays the same, but a lot of links < 0.4 will be broken in 0.4 docs. Go to 0.3 docs if you wish to follow links.
Molecule (k1lib.mo):
- Added close coulomb force calculations to simulator to make it more realistic (cyclohexane chair config possible now!) 
- Added optional Hydrogen viewing to various functions in - mo
- Fixed parsing bug where it doesn’t recognize “3-methyl” group in “3-methylpentane”. 
DL:
- Don’t let - AutoIncrement’s- valueproperty to auto increment internal value.
- Removed - CyclicRandomSampler, as- range(n) | repeatFrom() | randomize(n)`does the same thing.
- Removed - FunctionDataset, added simpler- FunctionDataas replacement.
- Removed - DataLoader,- Dataand- DatasetWithSampler, as they’re complex and obsolete.
- Added - tfImg(),- tfFloat(),- analyzeFloat()
- Monkey-patched - torch.nn.Moduleto have piping capabilities.
- Renamed - k1lib.datato- k1lib.kdata, and exposed it automatically in- imports.
- Renamed - k1lib.nnto- k1lib.knn, and exposed it automatically.
Bioinfo cli:
- Renamed - k1lib.bioinfo.clito- k1lib.cli
- Added - stagger()as the new interface for dataloaders.
- Added PIL conversion mode to - utils.toTensor
- Added Tensor shape mode in - utils.shape.
- Added - othersmodule, with- crissCross()
- Added Tensor mode to - toSum,- toAvg,- toMin,- toMaxand- oneToMany.
- Added alias - toMean.
- Added dtype choice to - toTensor.
0.3¶
Background stuff:
- Added mo tutorial 
DL:
- Added - FAnim()
- Added - mofor stuff related to molecular dynamics
- Added - graph(),- digraph(),- __call__()
- Huge revamp of - scheduleto make it more intuitive. There’s only 1 main schedule object now:- Fn.
- Added - k1lib.wraps(),- k1lib.Object.__delitem__(),- k1lib.Range.fromRange()
- Added - k1lib.Every
Bioinfo cli:
- Removed - notIn, as- inSetdoes the job just as well
- Included cli import command in - importsby default
- Modified - toFloat()and- modifier.toInt()so they can force weird values to 0.
- Moved existing - toDictto- toDictF, and created a new- toDict.
0.2¶
Pretty minor update. I just want to push this out as soon as possible
Background stuff:
- Changed versioning system so that it makes more sense 
- Added osic and mp tutorials 
- Added more speed analysis in the cli tutorial 
Bioinfo cli:
- Removed - dirsand- filesparameters in- ls, as- isFileis good enough
- Disable module - ctxby default, to improve performance
- Replaced - nonEmptyStreamto- empty
0.1.13¶
Background stuff:
- Removed walrus operator library-wide, so that it can be used with Python < 3.8 
Bioinfo cli:
- Added - breakIf,- isFile
- Replaced - infiniteFwith- repeatF
- Replaced - infiniteFromwith- repeatFrom
- Replaced - dereferencewith- deref
- Replaced - ctx.dereferencewith- ctx.deref
- Modified - applyMpto use- dillto deserialize everything
- Modified - to1Strso that it returns a string, instead of yielding
- Modified - toStrso that it can accept an optional column
- Modified - splitListso that it accepts *args
- Removed - applySingle, but retain- applyS
DL:
- Added class - CaptureStdout
- Patched - torch.Tensorwith- crissCross(),- histBounds()and- histScaled()
0.1.12¶
Background stuff:
- Removed docs’s generated - fontsfolder, as it takes 8MB and isn’t even used. Should now be sustainable for 100 versions on github pages.
Bioinfo cli:
- Removed wrapping - __ror__operator if- __init__is not defined, to make things performant.
- Added speed analysis in the cli tutorial. 
- Added - init.BaseCli.__call__(),- consume,- ctx.ctx(),- ctx.f,- peekF,- expandE,- utils.dereference.__invert__(),- unique,- notIn,- sortF,- toMax,- toMin,- union,- ls(),- instanceOf(),- randomize
- Removed - ctx.identity
- Added shortcuts to - ctx.setC()and- ctx.getC()
- Made - headerIdx()context-aware
- Put - ctx.Promisedereferencing at- init.BaseCli.__ror__(), instead of dynamic patching at- k1lib.bioinfo.cliconstruction time
- Get rid of - stdoutstyle inconsistencies. Previously, it looks like- [1, 2] | stdout, now it looks like- [1, 2] | stdout().
- Added multiprocessing capabilities with - applyMp
- Added - maxDepthoption for- dereference
- Added - includeLastoption to- batched
- Added - float("inf")option to- bsparameter of- batched
- Fixed - permuteto be able to take in generator for rows.
- Fixed - stdoutto be able to display non-iterable inputs
- Fixed - dereferenceso that it will handle poking errors
- Fixed - countso that it can deal with list. Used to throw unhashable type: ‘list’
- Added more flexibility with - toFloat(),- toInt()and- sort
DL:
- Added classes - AutoIncrement,- Wrapper
- Added functions - positionalEncode(),- debounce()
- Fixed - executeNb’s- _globalsdoc-backref problem. Also clears plot automatically after executing a cell now.
0.1.11¶
Background stuff:
- Added testing section for unit tests (simple assert statements inside the notebooks) 
Bioinfo cli:
- Added numpy/torch checks to - dereference
- Renamed - sampleto- peek
- Added - infiniteFrom,- joinStreamsRandom,- batched,- collate,- splitList
- Added - infiniteF
- Added - toTensor
- Replaced - infinitein favor of- repeat
- Updated all cli tools to use - super().__init__()
- Added - ctxmodule, with- Promise,- enum,- identityclasses, and- getC(),- setC()methods
DL:
- Added - k1lib.data.CyclicRandomSamplerand- k1lib.data.DatasetWithSampler
- Added highlight feature in - callbacks.Callbacks.checkpointGraph()
- Added - k1lib.viz.Carousel.pop(),- k1lib.viz.Carousel.__getitem__()
- Added - k1lib.Learner.sample()
- Disallow - k1lib.executeNb()to execute lines that starts with “!”, also removed parameter- catchErrors, as it’s quite useless
- Added - k1lib.Object()
0.1.10¶
Background stuff:
- Added notebook regression tests 
- Added tutorials automated building tool 
- Added - k1lib.ignoreWarnings
- Tutorials part moved to official docs (rather than .md files on github) 
- Added covid tutorial 
Bioinfo cli:
- Reintroduced - permute, as- rowsis inadequate
- Added - lengths,- applySingle
- Exposed - serial,- oneToMany,- manyToMany, and- manyToManySpecific
DL:
- Added - confusionMatrix.ConfusionMatrixand- k1lib.viz.confusionMatrix()
- Modified - k1lib.Objectto allow setting- getdocfield
- Added - k1lib.viz.Carousel.saveBytes(),- k1lib.viz.Carousel.saveFile(),- k1lib.viz.Carousel.saveGraphviz(), and handle different image formats much better now
0.1.9¶
Bioinfo cli:
- Added - k1lib.Domainclass
- Added - __invert__option for- rowsand- columnsby incorporating- k1lib.Domain
- Sped up - rowssignificantly
- Removed cli tool - everyas- rowsis good enough
- Added - __invert__option for- head. As a result, removed- nhead
- Added - till()mechanism to- grepcli tool
- Added - gbcli module to deal with genbank file format
- Added - tableFromList()as alias of- listToTable()
- Renamed - avgto- toAvg
- Added - toSum
DL:
- Added Callbacks tab completion to - k1lib.Learnerand- Callbacks
- Refactored - lossLandscape.LossLandscapeto- landscape.Landscapethat can be used by any other callbacks, right now it’s- Lossand- Accuracy
- Added - callbacks.Callback.pause()to help with- Accuracy’s- Landscape
0.1.8¶
- Fixed installation bug where readme.md would be absent, and setup.py won’t work at all. 
Bioinfo cli:
- Huge revamp of how tables are treated. Before, row elements are in a single string, separated by a delimiter. Now each row is a full fledged list 
- Added - grepToTable,- joinList,- contains,- table,- stitch,- listToTable,- insertColumncli tools
- Removed - joinRowsbut still keep- joinStreamsas “joinRows” is not really obvious
- Removed - permuteas- columnsis pretty much identical
- Renamed - insideto- inSet
- Cut out nested functionality from - grepto- grepToTable
0.1.7¶
Interface with external modules:
- Swapped out - register_backward_hookwith- register_full_backward_hook()in- HookModulecallback
- Added - torch.nn.Module.preserveDevice()context manager
Callbacks:
- Changed - Callbacks.suspend()to take in names only
- Added - Callbacks.suspendClasses()to take in classes
- Changed - Callbacks.suspendEvaluation()to- Callbacks.suspendEval(), also added functionality for white and black lists
- Ripped out complex - Callback.__getattr__()mechanism (that automatically searches the parent learner for missing attributes) to improve speed
- Added - k1lib.callbacks.corecallbacks- CoreNormaland- CoreRNN
- Added more plot decorators for - MemoryProfiler, including backward-forward separator with their text
- Changed - LossLandscapecallback so that it follows the common flow structure. Before, it implements a whole new- cbs(...)schema that essentially duplicated the loop inside of- k1lib.Learner
Learner:
- Implemented grace stop handling for - Learner. Before, if someone throws- CancelRunExceptionwhile executing a batch, then it will immediately jump to the end of the run. Changed it so that it will be caught in the batch loop, execute checkpoints- cancelBatchand- endBatchand rethrow it. Same thing with- CancelEpochException
- Moved loss function from being a core functionality inside - Learnerto an external callback, so that adapting multiple loss functions are possible
- Added - Learner.__call__()
Bioinfo cli:
- Added - isValue,- intersection,- AA_,- infinite,- dereferencecli tools
- Modified - catto be able to take in file name by pipe
- Added new joining operator “+” between - init.BaseCli
Style changes:
- Changed - Callbacks.learnerto- Callbacks.l
- Changed - Callback.learnerto- Callbacks.l
- Removed - k1lib.eqnfrom- k1lib.imports’s namespace
0.1.6¶
I don’t really keep track of things 0.1.6 and before, so nothing here really.