Changelogs¶
0.8¶
DL:
Exposed
k1lib.viz
automatically, 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()
. UseCbs
instead.Changed
__contains__()
so that it handles*
differently.
Cli:
Modified
shape
so 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
metab
as extra metadata from dataloaders toLearner
in the core training loop and modifiedRecorder
to return it if available.Added
n
option toAutoIncrement
.Added
mask()
.Removed
k1lib.stats()
, replaced it withtorch.Tensor.stats()
directlyAdded
torch.Tensor.hasInfs()
Made
LossNLLCross
integrates withAccF
instead.Made
AccF
integrates withConfusionMatrix
.Made
ConfusionMatrix
resilient 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
op
compatible 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
args
option inapplyMp
, as it feels clunky.Removed
cats
ascat().all()
does the same job.Sped up
op
to 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.ctx
module, as the performance sacrifices are too much, and it doesn’t add a lot of useful features.Renamed
utils.to1Str
tojoin
as that is more intuitive.Removed
structural.table
, asop().split().all()
does the same thing
0.6¶
DL:
Added __module__ impersonation for
wrapMod
.Renamed
LossLambda
toLossF
Renamed
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
prop
option tonamed_children()
andchildren()
.Removed callback
Frozen
asfreeze()
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.Module
inside and get params from there.
Cli:
0.5¶
DL:
Renamed
k1lib.format
tok1lib.fmt
, and exposed it automatically.Added
sizeOf()
Exposed
selector
automatically.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
applyMpBatched
that executes lots of transformations in a single job.Added
clearPools()
andpools()
.Added
activeSamples
.Removed aliases
splitColumns
andjoinColumns
.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
mo
Fixed parsing bug where it doesn’t recognize “3-methyl” group in “3-methylpentane”.
DL:
Don’t let
AutoIncrement
’svalue
property to auto increment internal value.Removed
CyclicRandomSampler
, asrange(n) | repeatFrom() | randomize(n)`
does the same thing.Removed
FunctionDataset
, added simplerFunctionData
as replacement.Removed
DataLoader
,Data
andDatasetWithSampler
, as they’re complex and obsolete.Added
tfImg()
,tfFloat()
,analyzeFloat()
Monkey-patched
torch.nn.Module
to have piping capabilities.Renamed
k1lib.data
tok1lib.kdata
, and exposed it automatically inimports
.Renamed
k1lib.nn
tok1lib.knn
, and exposed it automatically.
Bioinfo cli:
Renamed
k1lib.bioinfo.cli
tok1lib.cli
Added
stagger()
as the new interface for dataloaders.Added PIL conversion mode to
utils.toTensor
Added Tensor shape mode in
utils.shape
.Added
others
module, withcrissCross()
Added Tensor mode to
toSum
,toAvg
,toMin
,toMax
andoneToMany
.Added alias
toMean
.Added dtype choice to
toTensor
.
0.3¶
Background stuff:
Added mo tutorial
DL:
Added
FAnim()
Added
mo
for stuff related to molecular dynamicsAdded
graph()
,digraph()
,__call__()
Huge revamp of
schedule
to 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
, asinSet
does the job just as wellIncluded cli import command in
imports
by defaultModified
toFloat()
andmodifier.toInt()
so they can force weird values to 0.Moved existing
toDict
totoDictF
, 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
dirs
andfiles
parameters inls
, asisFile
is good enoughDisable module
ctx
by default, to improve performanceReplaced
nonEmptyStream
toempty
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
infiniteF
withrepeatF
Replaced
infiniteFrom
withrepeatFrom
Replaced
dereference
withderef
Replaced
ctx.dereference
withctx.deref
Modified
applyMp
to usedill
to deserialize everythingModified
to1Str
so that it returns a string, instead of yieldingModified
toStr
so that it can accept an optional columnModified
splitList
so that it accepts *argsRemoved
applySingle
, but retainapplyS
DL:
Added class
CaptureStdout
Patched
torch.Tensor
withcrissCross()
,histBounds()
andhistScaled()
0.1.12¶
Background stuff:
Removed docs’s generated
fonts
folder, 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()
andctx.getC()
Made
headerIdx()
context-awarePut
ctx.Promise
dereferencing atinit.BaseCli.__ror__()
, instead of dynamic patching atk1lib.bioinfo.cli
construction timeGet rid of
stdout
style inconsistencies. Previously, it looks like[1, 2] | stdout
, now it looks like[1, 2] | stdout()
.Added multiprocessing capabilities with
applyMp
Added
maxDepth
option fordereference
Added
includeLast
option tobatched
Added
float("inf")
option tobs
parameter ofbatched
Fixed
permute
to be able to take in generator for rows.Fixed
stdout
to be able to display non-iterable inputsFixed
dereference
so that it will handle poking errorsFixed
count
so that it can deal with list. Used to throw unhashable type: ‘list’Added more flexibility with
toFloat()
,toInt()
andsort
DL:
Added classes
AutoIncrement
,Wrapper
Added functions
positionalEncode()
,debounce()
Fixed
executeNb
’s_globals
doc-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
sample
topeek
Added
infiniteFrom
,joinStreamsRandom
,batched
,collate
,splitList
Added
infiniteF
Added
toTensor
Replaced
infinite
in favor ofrepeat
Updated all cli tools to use
super().__init__()
Added
ctx
module, withPromise
,enum
,identity
classes, andgetC()
,setC()
methods
DL:
Added
k1lib.data.CyclicRandomSampler
andk1lib.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 parametercatchErrors
, as it’s quite uselessAdded
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
, asrows
is inadequateAdded
lengths
,applySingle
Exposed
serial
,oneToMany
,manyToMany
, andmanyToManySpecific
DL:
Added
confusionMatrix.ConfusionMatrix
andk1lib.viz.confusionMatrix()
Modified
k1lib.Object
to allow settinggetdoc
fieldAdded
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.Domain
classAdded
__invert__
option forrows
andcolumns
by incorporatingk1lib.Domain
Sped up
rows
significantlyRemoved cli tool
every
asrows
is good enoughAdded
__invert__
option forhead
. As a result, removednhead
Added
till()
mechanism togrep
cli toolAdded
gb
cli module to deal with genbank file formatAdded
tableFromList()
as alias oflistToTable()
Renamed
avg
totoAvg
Added
toSum
DL:
Added Callbacks tab completion to
k1lib.Learner
andCallbacks
Refactored
lossLandscape.LossLandscape
tolandscape.Landscape
that can be used by any other callbacks, right now it’sLoss
andAccuracy
Added
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
,insertColumn
cli toolsRemoved
joinRows
but still keepjoinStreams
as “joinRows” is not really obviousRemoved
permute
ascolumns
is pretty much identicalRenamed
inside
toinSet
Cut out nested functionality from
grep
togrepToTable
0.1.7¶
Interface with external modules:
Swapped out
register_backward_hook
withregister_full_backward_hook()
inHookModule
callbackAdded
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.core
callbacksCoreNormal
andCoreRNN
Added more plot decorators for
MemoryProfiler
, including backward-forward separator with their textChanged
LossLandscape
callback 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 throwsCancelRunException
while 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 checkpointscancelBatch
andendBatch
and rethrow it. Same thing withCancelEpochException
Moved loss function from being a core functionality inside
Learner
to an external callback, so that adapting multiple loss functions are possibleAdded
Learner.__call__()
Bioinfo cli:
Added
isValue
,intersection
,AA_
,infinite
,dereference
cli toolsModified
cat
to be able to take in file name by pipeAdded new joining operator “+” between
init.BaseCli
Style changes:
Changed
Callbacks.learner
toCallbacks.l
Changed
Callback.learner
toCallbacks.l
Removed
k1lib.eqn
fromk1lib.imports
’s namespace
0.1.6¶
I don’t really keep track of things 0.1.6 and before, so nothing here really.