Changelogs¶
0.9¶
DL:
Added
scaleSvg().Added
prefixoption toAutoIncrement.
Cli:
Added
kwargsargument tomodifier.applyMpBatched().Added alias
iden.Added
trace()mechanism, with accompanying tutorial.Remove
shape’s tensor special caseAdded
applySerial.Added
infandcontexttocliSettings.Fixed bug where
"abc" | deref()will actually split the string into characters.Terminates pool in
applyMpif is keyboard interrupted, and in general made it much more robust.Stops
derefearly if encounteredyieldSentinelOptimizes
opeven further, thus removingisValue(), asfilt(op() == value)does the same thing.
0.8¶
DL:
Exposed
k1lib.vizautomatically, and improvemask()so that it smoothes out highlighted regions.Added
perlin3d().Monkey patched
march(),surface(),k3d(),loglinspace(),point(),line(),plane(),aspect().Renamed
append()toadd().Removed
with-semantics forCallback(). UseCbsinstead.Changed
__contains__()so that it handles*differently.
Cli:
Modified
shapeso that it can detect multiple dimensions now, not just 2.Added
extend(),fullness().Added
applyCached.Brought back
table().Removed
startswith()andendswith(), asfilt(op().startswith())does the same thing.
0.7¶
DL:
Added
metabas extra metadata from dataloaders toLearnerin the core training loop and modifiedRecorderto return it if available.Added
noption toAutoIncrement.Added
mask().Removed
k1lib.stats(), replaced it withtorch.Tensor.stats()directlyAdded
torch.Tensor.hasInfs()Made
LossNLLCrossintegrates withAccFinstead.Made
AccFintegrates withConfusionMatrix.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 likefilt(op() > 3, 1).Removed
split, asop().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 aliastableFromList(), as they are too simple, and the newunsqueeze(1)does the same thing.Removed
argsoption inapplyMp, as it feels clunky.Removed
catsascat().all()does the same job.Sped up
opto have roughly same performance asapply. As a consequence, removed [lstrip,rstrip,strip,upper,lower] clis as stuff likeop().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.to1Strtojoinas that is more intuitive.Removed
structural.table, asop().split().all()does the same thing
0.6¶
DL:
Added __module__ impersonation for
wrapMod.Renamed
LossLambdatoLossFRenamed
torch.nn.Module.preserveDevice()totorch.nn.Module.deviceContext()and add preserve buffers capability.Added
torch.nn.Module.gradContext().
k1lib.selector.ModuleSelector:
Renamed
filter()topreprocess().Removed
selected(), as__call__()does the same thing and is more intuitiveAdded
propoption tonamed_children()andchildren().Removed callback
Frozenasfreeze()andunfreeze()does the job and is much more robust.Added
freeze()andunfreeze()Removed
copy(), as you can just grab another selector straight from the model real quick.Removed
parameters(), as you can always access the associatedtorch.nn.Moduleinside and get params from there.
Cli:
0.5¶
DL:
Renamed
k1lib.formattok1lib.fmt, and exposed it automatically.Added
sizeOf()Exposed
selectorautomatically.Deleted
k1lib.websiteFixed infinity elements in
landscape.Landscape’s plots.
Cli:
Added chained mode to
itemFixed ignoreTensor mechanic in
derefAdded prefetch mode in
applyMpAdded
applyMpBatchedthat executes lots of transformations in a single job.Added
clearPools()andpools().Added
activeSamples.Removed aliases
splitColumnsandjoinColumns.Removed
stitch, asto1Str().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
moFixed parsing bug where it doesn’t recognize “3-methyl” group in “3-methylpentane”.
DL:
Don’t let
AutoIncrement’svalueproperty to auto increment internal value.Removed
CyclicRandomSampler, asrange(n) | repeatFrom() | randomize(n)`does the same thing.Removed
FunctionDataset, added simplerFunctionDataas replacement.Removed
DataLoader,DataandDatasetWithSampler, as they’re complex and obsolete.Added
tfImg(),tfFloat(),analyzeFloat()Monkey-patched
torch.nn.Moduleto have piping capabilities.Renamed
k1lib.datatok1lib.kdata, and exposed it automatically inimports.Renamed
k1lib.nntok1lib.knn, and exposed it automatically.
Bioinfo cli:
Renamed
k1lib.bioinfo.clitok1lib.cliAdded
stagger()as the new interface for dataloaders.Added PIL conversion mode to
utils.toTensorAdded Tensor shape mode in
utils.shape.Added
othersmodule, withcrissCross()Added Tensor mode to
toSum,toAvg,toMin,toMaxandoneToMany.Added alias
toMean.Added dtype choice to
toTensor.
0.3¶
Background stuff:
Added mo tutorial
DL:
Added
FAnim()Added
mofor stuff related to molecular dynamicsAdded
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, asinSetdoes the job just as wellIncluded cli import command in
importsby defaultModified
toFloat()andmodifier.toInt()so they can force weird values to 0.Moved existing
toDicttotoDictF, and created a newtoDict.
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
dirsandfilesparameters inls, asisFileis good enoughDisable module
ctxby default, to improve performanceReplaced
nonEmptyStreamtoempty
0.1.13¶
Background stuff:
Removed walrus operator library-wide, so that it can be used with Python < 3.8
Bioinfo cli:
Added
breakIf,isFileReplaced
infiniteFwithrepeatFReplaced
infiniteFromwithrepeatFromReplaced
dereferencewithderefReplaced
ctx.dereferencewithctx.derefModified
applyMpto usedillto deserialize everythingModified
to1Strso that it returns a string, instead of yieldingModified
toStrso that it can accept an optional columnModified
splitListso that it accepts *argsRemoved
applySingle, but retainapplyS
DL:
Added class
CaptureStdoutPatched
torch.TensorwithcrissCross(),histBounds()andhistScaled()
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(),randomizeRemoved
ctx.identityAdded shortcuts to
ctx.setC()andctx.getC()Made
headerIdx()context-awarePut
ctx.Promisedereferencing atinit.BaseCli.__ror__(), instead of dynamic patching atk1lib.bioinfo.cliconstruction timeGet rid of
stdoutstyle inconsistencies. Previously, it looks like[1, 2] | stdout, now it looks like[1, 2] | stdout().Added multiprocessing capabilities with
applyMpAdded
maxDepthoption fordereferenceAdded
includeLastoption tobatchedAdded
float("inf")option tobsparameter ofbatchedFixed
permuteto be able to take in generator for rows.Fixed
stdoutto be able to display non-iterable inputsFixed
dereferenceso that it will handle poking errorsFixed
countso that it can deal with list. Used to throw unhashable type: ‘list’Added more flexibility with
toFloat(),toInt()andsort
DL:
Added classes
AutoIncrement,WrapperAdded 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
dereferenceRenamed
sampletopeekAdded
infiniteFrom,joinStreamsRandom,batched,collate,splitListAdded
infiniteFAdded
toTensorReplaced
infinitein favor ofrepeatUpdated all cli tools to use
super().__init__()Added
ctxmodule, withPromise,enum,identityclasses, andgetC(),setC()methods
DL:
Added
k1lib.data.CyclicRandomSamplerandk1lib.data.DatasetWithSamplerAdded 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 parametercatchErrors, as it’s quite uselessAdded
k1lib.Object()
0.1.10¶
Background stuff:
Added notebook regression tests
Added tutorials automated building tool
Added
k1lib.ignoreWarningsTutorials part moved to official docs (rather than .md files on github)
Added covid tutorial
Bioinfo cli:
Reintroduced
permute, asrowsis inadequateAdded
lengths,applySingleExposed
serial,oneToMany,manyToMany, andmanyToManySpecific
DL:
Added
confusionMatrix.ConfusionMatrixandk1lib.viz.confusionMatrix()Modified
k1lib.Objectto allow settinggetdocfieldAdded
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.DomainclassAdded
__invert__option forrowsandcolumnsby incorporatingk1lib.DomainSped up
rowssignificantlyRemoved cli tool
everyasrowsis good enoughAdded
__invert__option forhead. As a result, removednheadAdded
till()mechanism togrepcli toolAdded
gbcli module to deal with genbank file formatAdded
tableFromList()as alias oflistToTable()Renamed
avgtotoAvgAdded
toSum
DL:
Added Callbacks tab completion to
k1lib.LearnerandCallbacksRefactored
lossLandscape.LossLandscapetolandscape.Landscapethat can be used by any other callbacks, right now it’sLossandAccuracyAdded
callbacks.Callback.pause()to help withAccuracy’sLandscape
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 toolsRemoved
joinRowsbut still keepjoinStreamsas “joinRows” is not really obviousRemoved
permuteascolumnsis pretty much identicalRenamed
insidetoinSetCut out nested functionality from
greptogrepToTable
0.1.7¶
Interface with external modules:
Swapped out
register_backward_hookwithregister_full_backward_hook()inHookModulecallbackAdded
torch.nn.Module.preserveDevice()context manager
Callbacks:
Changed
Callbacks.suspend()to take in names onlyAdded
Callbacks.suspendClasses()to take in classesChanged
Callbacks.suspendEvaluation()toCallbacks.suspendEval(), also added functionality for white and black listsRipped out complex
Callback.__getattr__()mechanism (that automatically searches the parent learner for missing attributes) to improve speedAdded
k1lib.callbacks.corecallbacksCoreNormalandCoreRNNAdded more plot decorators for
MemoryProfiler, including backward-forward separator with their textChanged
LossLandscapecallback so that it follows the common flow structure. Before, it implements a whole newcbs(...)schema that essentially duplicated the loop inside ofk1lib.Learner
Learner:
Implemented grace stop handling for
Learner. Before, if someone throwsCancelRunExceptionwhile 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 checkpointscancelBatchandendBatchand rethrow it. Same thing withCancelEpochExceptionMoved loss function from being a core functionality inside
Learnerto an external callback, so that adapting multiple loss functions are possibleAdded
Learner.__call__()
Bioinfo cli:
Added
isValue,intersection,AA_,infinite,dereferencecli toolsModified
catto be able to take in file name by pipeAdded new joining operator “+” between
init.BaseCli
Style changes:
Changed
Callbacks.learnertoCallbacks.lChanged
Callback.learnertoCallbacks.lRemoved
k1lib.eqnfromk1lib.imports’s namespace
0.1.6¶
I don’t really keep track of things 0.1.6 and before, so nothing here really.