CAREamist API#
The CAREamist API is the recommended way to use CAREamics, it is a two stage process, in which users first define a configuration and then use a the CAREamist
to run their training and prediction.
Quick start#
The simplest way to use CAREamics is to create a configuration using the convenience functions. Checkout the applications section for real-world examples of the various algorithms.
import numpy as np
from careamics import CAREamist
from careamics.config import create_n2v_configuration
# create a configuration
config = create_n2v_configuration(
experiment_name="n2v_2D",
data_type="array",
axes="YX",
patch_size=[64, 64],
batch_size=1,
num_epochs=1, # (1)!
)
# instantiate a careamist
careamist = CAREamist(config)
# train the model
train_data = np.random.randint(0, 255, (256, 256)).astype(np.float32) # (2)!
careamist.train(train_source=train_data)
# once trained, predict
pred_data = np.random.randint(0, 255, (128, 128)).astype(np.float32)
prediction = careamist.predict(source=pred_data)
-
Obviously, choose a more realistic number of epochs for training.
-
Use real data for training!
import numpy as np
from careamics import CAREamist
from careamics.config import create_care_configuration
# create a configuration
config = create_care_configuration(
experiment_name="care_2D",
data_type="array",
axes="SYX",
patch_size=[64, 64],
batch_size=1,
num_epochs=1, # (1)!
)
# instantiate a careamist
careamist = CAREamist(config)
# train the model
train_data = np.random.randint(0, 255, (5, 256, 256)).astype(np.float32) # (2)!
train_target = np.random.randint(0, 255, (5, 256, 256)).astype(np.float32)
val_data = np.random.randint(0, 255, (2, 256, 256)).astype(np.float32)
val_target = np.random.randint(0, 255, (2, 256, 256)).astype(np.float32)
careamist.train(
train_source=train_data,
train_target=train_target,
val_source=val_data,
val_target=val_target,
)
# once trained, predict
pred_data = np.random.randint(0, 255, (128, 128)).astype(np.float32)
prediction = careamist.predict(source=pred_data, axes="YX")
-
Obviously, choose a more realistic number of epochs for training.
-
Use real data for training! Here, we added validation data as well.
import numpy as np
from careamics import CAREamist
from careamics.config import create_n2n_configuration
# create a configuration
config = create_n2n_configuration(
experiment_name="n2n_2D",
data_type="array",
axes="YX",
patch_size=[64, 64],
batch_size=1,
num_epochs=1, # (1)!
)
# instantiate a careamist
careamist = CAREamist(config)
# train the model
train_data = np.random.randint(0, 255, (256, 256)).astype(np.float32) # (2)!
train_target = np.random.randint(0, 255, (256, 256)).astype(np.float32)
careamist.train(
train_source=train_data,
train_target=train_target,
)
# once trained, predict
pred_data = np.random.randint(0, 255, (128, 128)).astype(np.float32)
prediction = careamist.predict(source=pred_data)
-
Obviously, choose a more realistic number of epochs for training.
-
Use real data for training!
Documentation#
There are many features that can be useful for your application, explore the documentation to learn all the various aspects of CAREamics.