What's Changed
- wandb.Table: Added new constructor param,
log_mode, with options"IMMUTABLE"and"MUTABLE".IMMUTABLElog mode (default) is existing behavior that only allows a table to be logged once.MUTABLElog mode allows the table to be logged again if it has been mutated. (@domphan-wandb in #9758) - wandb.Table: Added a new
log_mode,"INCREMENTAL", which logs newly added table data incrementally. (@domphan-wandb in #9810)
Notable Changes
This version removes the ability to disable the service process. This is a breaking change.
Added
- Added
mergeparameter toArtifact.add_dirto allow overwrite of previously-added artifact files (@pingleiwandb in #9907) - Support for pytorch.tensor for
masksandboxesparameters when creating awandb.Imageobject. (@jacobromero in #9802) sync_tensorboardnow supports syncing tfevents files stored in S3, GCS and Azure (@timoffex in #9849)- GCS paths use the format
gs://bucket/path/to/log/dirand rely on application-default credentials, which can be configured usinggcloud auth application-default login - S3 paths use the format
s3://bucket/path/to/log/dirand rely on the default credentials set throughaws configure - Azure paths use the format
az://account/container/path/to/log/dirand theaz logincredentials, but also require theAZURE_STORAGE_ACCOUNTandAZURE_STORAGE_KEYenvironment variables to be set. Some other environment variables are supported as well, see here.
- GCS paths use the format
- Added support for initializing some Media objects with
pathlib.Path(@jacobromero in #9692) - New setting
x_skip_transaction_logthat allows to skip the transaction log. Note: Should be used with caution, as it removes the gurantees about recoverability. (@kptkin in #9064) normalizeparameter towandb.Imageinitialization to normalize pixel values for Images initialized with a numpy array or pytorch tensor. (@jacobromero in #9883)
Changed
- Various APIs now raise
TypeErrorinstead ofValueErroror other generic errors when given an argument of the wrong type. (@timoffex in #9902) - Various Artifacts and Automations APIs now raise
CommErrorinstead ofValueErrorupon encountering server errors, so as to surface the server error message. (@ibindlish in #9933) wandb.sdk.wandb_run.Run::savemethod now requires theglob_strargument (@dmitryduev in #9962)
Removed
- Removed support for disabling the
serviceprocess. Thex_disable_service/_disable_servicesetting and theWANDB_DISABLE_SERVICE/WANDB_X_DISABLE_SERVICEenvironment variable have been deprecated and will now raise an error if used (@kptkin in #9829) - Removed ability to use
wandb.dockerafter only importingwandb(@timoffex in #9941)wandb.dockeris not part ofwandb's public interface and is subject to breaking changes. Please do not use it.
- Removed no-op
syncargument fromwandb.Run::logfunction (@kptkin in #9940) - Removed deprecated
wandb.sdk.wandb_run.Run.modeproperty (@dmitryduev in #9958) - Removed deprecated
wandb.sdk.wandb_run.Run::joinmethod (@dmitryduev in #9960)
Deprecated
- The
start_methodsetting is deprecated and has no effect; it is safely ignored (@kptkin in #9837) - The property
Artifact.use_asand parameteruse_asforrun.use_artifact()are deprecated since these have not been in use for W&B Launch (@ibindlish in #9760)
Fixed
- Calling
wandb.teardown()in a child of a process that calledwandb.setup()no longer raisesWandbServiceNotOwnedError(@timoffex in #9875)- This error could have manifested when using W&B Sweeps
- Offline runs with requested branching (fork or rewind) sync correctly (@dmitryduev in #9876)
- Log exception as string when raising exception in Job wait_until_running method (@KyleGoyette in #9607)
wandb.Imageinitialized with tensorflow data would be normalized differently than when initialized with a numpy array (@jacobromero in #9883)- Using
wandb loginno longer prints a warning aboutwandb.require("legacy-service")(@timoffex in #9912) - Logging a
Table(or other objects that create internal artifacts) no longer raisesValueErrorwhen logged from a run whose ID contains special characters. (@tonyyli-wandb in #9943) wandb.Apiinitialized with thebase_urlnow respects the provided url, rather than the last login url (@jacobromero in #9942)