Skip to content

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)
  1. Obviously, choose a more realistic number of epochs for training.

  2. 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")
  1. Obviously, choose a more realistic number of epochs for training.

  2. 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)
  1. Obviously, choose a more realistic number of epochs for training.

  2. 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.