The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
freq_type parameter of
t_clbk("checkpoint") was removed and checkpointing is
always per epoch.only_batch_unknown of
PipeOpTorch was removed, as shape inference functions are
now expected to handle multiple unknown dimensions.p of
lrn("classif.mlp") / lrn("regr.mlp") is now
initialized to 0.1 instead of 0.5. Set
p = 0.5 explicitly to keep the old behaviour.cache argument of materialize() is now
a utils::hashtab() instead of an
environment(), which avoids possible hash collisions and
raises the R dependency to >= 4.2.0..encode_prediction()
method of LearnerTorch was renamed from
predict_tensor to network_output, as it can
also be a list() of tensors.measures_train is now calculated from the complete
output of the network instead of only its first tensor, which is passed
to .encode_prediction() unchanged.num_interop_threads parameter of
LearnerTorch is no longer initialized to 1, so
torch’s default is left in place unless the parameter is set. Setting it
to a value that torch can no longer apply is now an error instead of a
warning.return_indices of
nn("max_pool*") was removed. The indices are now requested
via the new field $outputs,
e.g. nn("max_pool2d", outputs = c("output", "indices")).device parameter of LearnerTorch now
accepts an index, e.g. "cuda:1", to train on a specific
GPU. The new section Multiple GPUs in
?LearnerTorch shows how to spread resampling over several
GPUs with mirai.LearnerTorch for a task type is now
taken from mlr_reflections$torch$default_losses, so
extension packages can register a default loss for their own task
types.drop_last = TRUE, LearnerTorch now
caps the training batch size at the number of training observations
instead of dropping all of them.as_learner_torch(), which converts a
Graph of PipeOpTorch operators into a
Learner. Its advantage over as_learner() is
that the resulting learner exposes methods like $network()
and $dataset(). Besides graphs of PipeOpTorch
operators, it also accepts graphs whose base learner is a
LearnerTorch,
e.g. po("scale") %>>% lrn("classif.mlp").LearnerTorch and PipeOpTorchModel now
accept any task type registered in
mlr_reflections$task_types, via the new generics
get_target_batchgetter() and
encode_prediction().get_batch_constructor(), which decides
how a whole batch of a task is built, i.e. both the features
x and the target y.TaskTorch to easily go beyond the
regression and classification setting, see the Custom Learning
Problems article for more information. A TaskTorch can
define a default_target_batchgetter, which is used whenever
the learner does not specify a target_batchgetter
itself.list() of tensors in
evaluation mode, which is passed to encode_prediction() as
it is, so a prediction can consist of more than one quantity.pipeop_torch() that simplifies the
creation of PipeOpTorch classes.$model of a LearnerTorch now has a
printer.LearnerTorch now implements
$best_valid_scores.LearnerTorchVision are now
jittable.TabM tabular learner from Python.RealMLP tabular learner from Python.LearnerTorch now has a private
.setup_training(ctx, param_vals) method that allows
subclasses to customize a training run, e.g. to wrap the loss, create
the optimizer from parameter groups or add callbacks.LearnerTorch now has a
restore_best_weights parameter that can be used when early
stopping is active.list() of tensors during
training, which the loss is applied to. In ContextTorch,
$y_hats is that complete output and $y_hat its
first element.batch_size_predict for
LearnerTorch, which overrides batch_size for
prediction.PipeOps.$outputs of PipeOpTorch
restricts the output channels to a subset of the outputs of the wrapped
module.nn("silu"), nn("softmin"),
nn("log_softmax"), nn("softmax2d"),
nn("dropout2d"), nn("dropout3d"),
nn("group_norm"), nn("unflatten") and
nn("adaptive_max_pool1d") /
nn("adaptive_max_pool2d") /
nn("adaptive_max_pool3d").nn("rnn"),
nn("lstm") and nn("gru").PipeOpTorch’s shape
inference.shape parameter of nn("reshape") can
now be a function(shape) of the input shape.PipeOpTorch classes.ContextTorch has a new field $callbacks,
which gives a callback access to the other callbacks of the training
run.weight field.LearnerTorch can now be resumed from a checkpoint,
which includes resuming the callbacks.path of t_clbk("checkpoint") can now
be a function() that is called at the beginning of each
training run and returns that run’s path.t_clbk("checkpoint") now reports its folder in
learner$model$callbacks$<id>$path, so the folder a
path function chose can be read off the trained
learner.ctx$terminate is
checked before an epoch rather than after it.nn_graph was improved for small
networks.cache_task_data to
LearnerTorch, which is TRUE by default and
speeds up data loading.epochs now
returns its model instead of erroring.resume)
on a GPU no longer fails because the optimizer state was loaded onto the
CPU.torchvision preprocessing/augmentation
pipeops to work with torchvision version 0.10.0.nn("block") now copies the graph it is constructed
from, so changing that graph afterwards no longer changes the
block.po("torch_model_regr")
/ po("torch_model_classif") now error when the predict
task’s factor levels differ from the train task’s.nn("tokenizer_categ") now always infers the
cardinalities correctly.lrn("classif.ft_transformer") /
lrn("regr.ft_transformer") now accept
ingress_tokens with only num.input or only
categ.input.lrn("classif.torch_model") /
lrn("regr.torch_model") no longer change their
$hash when they are trained.ContextTorch$epoch is now 0 during the
on_begin stage instead of NULL.replace_head() for mobilenet_v2 and
VGG now works for width_mult above 1.po("torch_model_classif") and
po("torch_model_regr") now have the correct
$packages.batch_sampler parameter can now be used without
setting batch_size for training.LearnerTorch no longer trigger a fallback learner.LearnerTorch’s sampler and
batch_sampler parameters are now not used during
prediction.logical() features are now encoded as 1-based instead
of 0-based.lazy_tensor columns are now again printed correctly
inside data.tables.nn("reshape") with a function(shape)
target now resolves a -1 whenever the number of elements
per observation is known, i.e. when the batch dimension is the only
unknown one.po("torch_model_{regr, classif}") now resets the
parameters of the network at the beginning of $train() when
the network is built from PipeOpTorch objects, which makes
the results reproducible for the set seed parameter.nn() now properly interprets
nn("linear_1") as
po("nn_linear", id = "linear_1").FTTransformer:
attention_initialization now has an effect,
n_blocks = 0 is allowed and the hidden dimension falls back
to d_token * 4/3 as in the reference implementation.lrn("classif.tab_resnet") /
lrn("regr.tab_resnet") now apply batch normalization and
ReLU before the output layer, as in the reference implementation.nn("linear")
instead of the equivalent but longer po("nn_linear").lazy_tensor printing.as_lazy_tensor() when
converting 1D tensors to lazy tensors.t_opt("adamw") now actually uses AdamW and not
Adam.mlr3torch to
mlr_reflections$loaded_packages to fix errors when using
mlr3torch in parallel.nn("head") was also changed to match this. This means that
for binary classification tasks, t_loss("cross_entropy")
now generates nn_bce_with_logits_loss instead of
nn_cross_entropy_loss. This also came with a
reparametrization of the t_loss("cross_entropy") loss
(thanks to @tdhock,
#374).po("nn_identity")po("nn_fn") for calling custom functions in a
network.nn("block") (which repeats the same network segment
multiple times) now has an extra argument trafo, which
makes it possible to modify the parameter values per layer.y_hat).lr_one_cycle callback now infers the total number
of steps.digits for controlling
the precision with which validation/training scores are logged.TorchIngressToken now also can take a
Selector as argument features.lazy_shape() to get the shape of a lazy
tensor.LearnerTorch base class now supports the private
method $.ingress_tokens(task, param_vals) for generating
the torch::dataset.NAs and not only the batch
dimension can be missing. However, most nn() operators
still expect only one missing values and will throw an error if multiple
dimensions are unknown.NA instead.param_groups parameter.NA is now a valid shape for lazy tensorslr_reduce_on_plateau callback now works.LearnerTorchModel can now be parallelized and trained
with encapsulation activated.jit_trace now works in combination with batch
normalization.R6 version 2.6.0LearnerTorch$.dataloader() method now
operates no longer on the task but on the
dataset generated by the private
LearnerTorch$.dataset() method.shuffle parameter during model training is now
initialized to TRUE to sidestep issues where data is
sorted.jit_trace parameter was added to
LearnerTorch, which when set to TRUE can lead
to significant speedups. This should only be enabled for ‘static’
models, see the torch
tutorial for more information.num_interop_threads to
LearnerTorch.tensor_dataset parameter was added, which makes it
possible to stack all batches at the beginning of training to make
loading of batches afterwards faster.PipeOp for adaptive average pooling.n_layers parameter was added to the MLP
learner.AutoTuner.epochs - patience for the
internally tuned values instead of the trained number of
epochs as it was before.dataset of a learner must no longer return the
tensors on the specified device, which allows for parallel
dataloading on GPUs.PipeOpBlock should no longer create ID clashes with
other PipeOps in the graph (#260).data_formats anymoreCallbackSetTB, which allows logging that can be
viewed by TensorBoard.PipeOps such as po("trafo_resize") which
failed in some cases.LearnerTabResnet now works correctlynn() helper function to simplify the
creation of neural network layersThese binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.