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.
Bug fixes:
RTLD_DEEPBIND
(#1268)optim_ignite_<name>()
) are available: Adam, AdamW,
Adagrad, RMSprop,SGD. These can be used as drop-in replacements for
optim_<name>
but are considerably faster as they wrap
the LibTorch implementation of the optimizer. The biggest speed
differences can be observed for complex optimizers such as
AdamW
.torch_iinfo()
now support all integer dtypes (#1190
@cregouby)nnf_multi_head_attention_forward()
(#1205)jit_trace
(#1246)$finalize_deep_clone()
method for nn_module
which allows to run some code after
cloning a module.compare_proxy
method for the
torch_tensor
type was added it allows to compare torch
tensors using testthat::expect_equal()
.nnf_multi_head_attention_forward
(#1154 @cregouby)$detach()
on a tensor now preserves
attributes (#1136)create_nn_module_callable()
grad_fn
now appends a new line at the
end.local_autocast()
. (#1142)torch_arange()
causing it to return
1:(n-1) values when specific request dtype = torch_int64()
(#1160)torch_save
serialization format. It’s ~10x faster
and since it’s based on safetensors, files can be read with any
safetensors implementation. (#1071)torch_load
no longer supports device=NULL
to load weights in the same device they were saved. (#1085)as.array
now moves tensors to the cpu before copying
data into R. (#1080)dtype
with a
NULL
. (#1090)torch_cfloat64
. (#1091)out_features
attribute in the
nn_linear
module. (#1097)nn_module
s with empty state
dicts. (#1108)distr_multivariate_normal
now correctly handles
precision matrix’s. (#1110)length.torch_tensor
implementation to R7 to avoid
problems when a torch dataset has the torch_tensor
class.
(#1111)nn_module
.
(#1123)load_state_dict()
for optimizers now default to cloning
the tensors in the state dict, so they don’t keep references to objects
in the dict. (#1041)nn_utils_weight_norm
(#1025)jit_ops
allowing to access JIT operators.
(#1023)with_device
and local_device
to
allow temporarily modify the default device tensors get initialized.
(#1034)nnf_gelu()
and nn_gelu()
gained the
approximate
argument. (#1043)!=
for torch devices. (#1042)nn_module_dict()
. (#1046)load_state_dict()
, also using less memory. It’
possible to use the legacy implementation if required, see PR.
(#1051)as.numeric()
. (#1056)torch_tensor_from_buffer()
and
buffer_from_torch_tensor()
that allow low level creation of
torch tensors. (#1061, #1062)install_torch()
. (#1055)state_dict()
even if they should not.
(#1036)optim_adamw
class name.nn_cross_entropy_loss
class name. (#1043)RemoteSha
is a
package version. (#1058)CXXSTD
to Makevars to enable C+11 compilation
options..refer_to_state_dict
to the
load_state_dict()
nn_module()
method. Allows
loading the state dict into the model keeping parmaters as references to
that state dict. (#1036)nn_silu()
and nnf_silu()
.
(#985)nn_module
s. (#986)local_no_grad()
and
local_enable_grad()
as alternatives for the
with_
functions. (#990)optim_adamw
optimizer. (#991)batch_size=1
is used. (#994)torch_where
now returns 1-based indices when it’s
called with the condition
argument only. (#951, @skeydan)torch_fft_fftfreq()
function is now exported.
(#950, @skeydan)distr_normal$sample()
not being
able to generate reproducible results after setting seeds. (#938)torch_cat
error message now correctly reflects 1-based
indexing. (#952, @skeydan)sprintf
. (#959, @shikokuchuo)glue
(#960)torch_bincount
is now 1-based indexed. (#896)torch_movedim()
and $movedim()
are now
both 1-based indexed. (#905)cuda_synchronize()
to allow synchronization of
CUDA operations. (#887)cuda_empty_cache()
to allow freeing memory from
the caching allocator to the system. (#903)$is_sparse()
method to check wether a Tensor is
sparse or not. (#903)dataset_subset
now adds a class to the modified dataset
that is the same as the original dataset classes postfixed with
_subset
. (#904)torch_serialize()
to allow creating a raw vector
from torch objects. (#908)torch_arange
that was causing the
end
value not getting included in the result. (#885, @skeydan)install_torch(reinstall = TRUE)
.
(#883)dims
argument in torch_tile()
is no
longer modified, as it’s not meant to be the a 1-based dimension.
(#905)nn_module$state_diict()
now detaches output tensors by
default. (#916)$
method for R7 classes in C/C++ to
improve speed when calling methods. (#873)backward()
call. This improves speed because we no longer
need to call GC everytime backward is called. (#873)nnf_
functions have been updated to use a single
torch_
kernel instead of the custom implementation.
(#896)torch_bernoulli()
with device="gpu"
.
(#906)PRECXX11ABI=1
. This can be useful in environments with
older versions of GLIBC. (#870)options(torch.serialization_version = 1)
if you want your
file to be readable by older versions. (#803)linalg_matrix_rank
and linalg_pinv
gained
atol
and rtol
arguments while deprecating
tol
and rcond
. (#835)keep_graph
now defaults to the value of
create_graph
when calling $backward()
. We also
renamed it to retain_graph
to match PyTorch. (#811)optimizer
now carry the
classname in the generator and in instances. Optimizer generators now
have the class torch_optimizer_generator
. The class of
torch optimizers has been renamed from torch_Optimizer
to
torch_optimizer
. (#814)nn_prune_head()
to prune top
layer(s) of a network (#819 @cregouby)torch_kron()
is now exported (#818).nn_embedding_bag
. (#827, @egillax)nn_multihead_attention
now supports the
batch_first
option. (#828, @jonthegeek)x$grad <- new_grad
. (#832)sampler()
is now exported allowing to create custom
samplers that can be passed to dataloader()
. (#833)nn_module
s without a initialize
method is now supported. (#834)lr_reduce_on_plateau
learning rate scheduler.
(#836, @egillax)torch_tensor(NULL)
no longer fails. It now returns a
tensor with no dimensions and no data. (#839)nn_l1_loss
. (#825, @sebffischer)embed_dim
is not divisible by
num_heads
in nn_multihead_attention
.
(#828)cuda_runtime_version()
to query the CUDA Tolkit
version that torch is using. (#790)torch_sort
and Tensor$sort
now return
1-indexed results. (#709, @mohamed-180)dim
from 1
to
2
in nnf_cosine_similarity
. (#769)jit_save_for_mobile
allows to save a traced model in
bytecode form, to be loaded by a LiteModuleLoader
.
(#713)is_torch_tensor
to check wether an object is a
tensor or not. (#730, @rdinnager)cuda_get_device_properties(device)
that allows one
to query device capability and other properties. (#734, @rdinnager)call_torch_function()
to allow calling
potentially unexported torch core functions. (#743, @rdinnager)inst
directory. This will allow for
packages extending torch to bind directly to its C++ library.
(#718)dataset_subset
will use the .getbatch
method of the wrapped dataset if one is available. (#742, @egillax)nn_flatten
and nn_unflatten
modules.
(#773)cuda_memory_stats()
and
cuda_memory_summary()
to verify the amount of memory torch
is using from the GPU. (#774)backends_cudnn_version()
to query the CuDNN
version found by torch. (#774).validate_sample
for the
Distribution
class that would incorrectly check for
tensors. (#739, @hsbadr)autograd_function
s. (#750)autograd_grad
to deadlock when
used with custom autograd functions. (#771)torch_max
and torch_min
that would fail with length=2
Tensors. (#772)torch_tensor
is now a C++ only function slighly
increasing performance in a few situations. (#784)nn_sequential
is now a bare nn_module
,
allowing to easily inherit from it. This is a breaking change if you
used the name
argument. The name
behavior can
be achieved by subclassing; see the tests in the PR. (#699)nn_sequential
modules using
[
. (#678, @mohamed-180)padding='same'
and
padding='valid'
when using convolutions. (#679)nnf_cross_entropy
now uses the ATen
cross_entropy
operation directly instead of doing
logsoftmax + NLLLoss. (#680)nn_sequential
and still want that
the specific S3 methods still work. (#701)torch_manual_seed()
now matches PyTorch’s behavior so
we can more easily compare implementations. Since this is a breaking
change we added the torch.old_seed_behavior=TRUE
option so
users can stick to the old behavior. (#639)torch_index
or torch_index_put
.
(#649)nn_module
s. (#593)jit_compile
function that allows compiling
arbitrary TorchScript code into script function that can be serialized
and executed. (#601)jit_trace
support for nn_module
created from R. (#604)contrib_sort_vertices
to efficiently sort
vertices on CUDA. (#619)with_detect_anomaly
to debug autograd errors.
(#628)traced_module$graph_for()
to allow
inspecting the optimized jit graph. (#643)slc
to allow dynamically creating slices when
indexing tensors. (#648).getbatch
method that didn’t
return a torch_tensor
. (#615)%/%
caused by a call to
deprecated torch_floor_divide
(#616)gc
when CUDA memory is
exhausted we now call R_RunPendingFinalizers
. This should
improve memory usage, because we will now delete tensors earlier.
(#654)torch_multinomial
now returns 1-based indexes to comply
with 1-based indexing across torch. (#588)jit_trace
functions with more than 1
argument. (#544)torch_diff
function and added docs for it.
(#565)device
argument to torch_load()
allowing one to select to which device parameters should be loaded.
(#578)distr_categorical()
(#576)distr_mixture_same_family()
(#576)load_state_dict()
and state_dict()
for
optimizers. (#585)list
s containing
torch_tensor
s using torch_save
. This allows us
to save the state of optimizers and modules using
torch_save()
. (#586)nn_multihead_attention
when q,k,v inputs
not all the same. (@jonathanbratt #540)$copy_
so it correctly respects the src
requires_grad()
when reloading saved models with
torch_load()
. (#545)nn_init_xavier_normal_()
and
nn_init_xavier_uniform_()
standard deviation calculation.
(#557)torch_tensordot()
when called when
infering dimensions. (#563).getbatch
now takes an integer vector as
input instead of a list()
. (#572)tensor$size()
when indexing with
negative numbers. (#570)log_prob
of
distr_bernoulli()
(#581)XPtrTorchOptionalTensor
class. (#565)torch_nonzero
and tensor$nonzero()
now
return 1-based indexes. (#432)torch_arange
returns in the closed
interval [start, end]
instead of the half open
[start, end)
. This makes it behave similar to R’s
seq
. (#506)torch_split
now accepts a list of sizes as well as a
fixed size. (#429)nn_layer_norm
. (#435)timeout=360
as install_torch()
parameter for large file download (@cregouby #438)install_torch_from_file()
and
get_install_libs_url()
for setup cases where direct download
is not possible (@cregouby #439)mean.torch_tensor
(#448)worker_globals
and
worker_packages
allowing to easily pass objects to workers
in parallel dataloaders (#449).nn_group_norm
and fixed a bug in
nnf_group_norm
(#474)as.list
for nn_modules
(#492)nn_lstm
, nn_gru
and nn_gru
can now use cudnn accelerations when available (#503).!=
for torch dtypes.
(#524)optimizer
function allowing to easily implement
custom optimizers. (#527)optim_lbfgs
that would make model objects
exponentially big. (#431)NaN
s in L-BFGS optimizer (#433)torch_normal
. (#450)torch_save
.
(#454)nnf_pad
when using
mode='circular'
. (#471)nn_multihead_attention
(#496)nn_lstm
(#500)to
method of nn_module
that would reset the requires_grad
attribute of parameters.
(#501)strong_wolfe
option to optim_lbfgs
.
(#517)nn_init_trunc_normal_
initializer function. (#535)torch_dtype()
being
an R6 class. (#451)torch_one_hot
and nnf_one_hot
use
1-based indexing. (#410)nn_module$eval()
and nn_module$train()
now
return a callable nn_module
instead of a
nn_Module
. (#425)gc
when torch
might need more memory (#402)nn_module
(#417)requires_grad
attribute using the
$<-
operator (#419)length
method for the nn_sequential
container. (#423)nnf_normalize
and x$norm()
as they
were not able to be called (#409)nn_module
documentation
(#399).coro::exhausted
intead of
raising stop_iteration_error
when the dataloader exceeds.
(#366)torch_argsort
and x$argsort
to
return 1-based indexes (#342)torch_argmax
, torch_argmin
,
x$argmax()
and x$argmin()
return 1-based
indexes. (#389)$element_size()
method (@dirkschumacher #322)$bool()
method (@dirkschumacher #323)torch__addr
and torch__addr_
have been
removed as they are no longer available in LibTorch 1.7.long
tensors to R and
there’s a chance of an integer overflow. (#347)private
and active
methods in
nn_module
’s and dataset
’s. (#349)nn_batch_norm3d
(@mattwarkentin #354)nn_lstm
and nn_gru
modules.
(#362)nn_module
UI by improving autocomplete
support and adding a print method (#391)grad_fn
of a Tensor
that doesn’t have one. See (#321)torch_norm
so it can be called with a
dim
argument. (#345)torch_hann_window
with an
invalid NULL
window_length
. (#351)torch_stft
calls for LibTorch 1.7 (added the
return_complex
argument) (#355)nvcc --version
instead of nvidia-smi
to find the CUDA version as nvidia-smi
reports the latest
supported version and not the installed one. (#363)RandomSampler(replacement = TRUE)
to never take the last element in the dataset. (84861fa)torch_topk
and x$topk
so the
returned indexes are 1-based (#280)1 - torch_tensor(1, device = "cuda")
to fail because
1
was created in the CPU. (#279)dataloader
output
(#286)torch_narrow
, Tensor$narrow()
and
Tensor$narrow_copy
are now indexed starting at 1.
(#294)Tensor$is_leaf
is now an active method. (#295)torch_einsum
.
(#296)nn_module_list()
to correctly name added modules,
otherwise they are not returned when doing state_dict()
on
it. (#300)nn_batchnorm*
so it returns the same results as
PyTorch (#302)nn_module$parameter
when there
were shared parameters between layers. (#306)$max
and $min
to return 1-based
indexes. (#315)utils_data_default_collate
to support
converting R objects to torch tensors when needed. (#269)as.matrix
method for torch Tensors.
(#282)print(totrch_tensor(1:40))
if it spans for more than 30
lines. This is useful for not spamming the console or taking very long
to print when you print a very large tensor. (#283)nnf_contrib_sparsemax
and
nn_contrib_sparsemax
. (#309)$<-
and [[<-
operators for the nn_module
class. (#253)nn_parameter
, nn_buffer
, and
is_*
auxiliary functions.NEWS.md
file to track changes to the
package.These 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.