omnipose icon indicating copy to clipboard operation
omnipose copied to clipboard

Train an Omnipose model with 3-channel input images

Open ThaoCao opened this issue 8 months ago • 1 comments

Hi all, I am trying to train a model from scratch with:

  • Input images: (160,160,3) RGB images (array of uint8)
  • Input masks: (160,160) 16-bit images
  • Training via CLI: --train --use_gpu --n_epochs 1000 --pretrained_model None --learning_rate 0.01 --diameter 0 --batch_size 16 --RAdam --nchan 3 --all_channels --nclasses 2 --tyx 128,128,3

I have tried a couple of --tyx argument (such as 128,128 versus 128,128,3)

The error I received was: File "/home/thaocao/.conda/envs/omnipose/lib/python3.10/runpy.py", line 196, in _run_module_as_main return _run_code(code, main_globals, None, File "/home/thaocao/.conda/envs/omnipose/lib/python3.10/runpy.py", line 86, in _run_code exec(code, run_globals) File "/home/thaocao/omnipose/omnipose/main.py", line 12, in main() File "/home/thaocao/omnipose/omnipose/main.py", line 9, in main cellpose_omni_main(args) File "/home/thaocao/omnipose/cellpose_omni/main.py", line 423, in main cpmodel_path = model.train(images, labels, links, train_files=image_names, File "/home/thaocao/omnipose/cellpose_omni/models.py", line 1572, in train model_path = self._train_net(train_data, train_labels, train_links, File "/home/thaocao/omnipose/cellpose_omni/core.py", line 1138, in _train_net imgi, lbl, scale = transforms.random_rotate_and_resize([train_data[i] for i in inds], File "/home/thaocao/omnipose/cellpose_omni/transforms.py", line 898, in random_rotate_and_resize return omnipose.core.random_rotate_and_resize(X, Y=Y, scale_range=scale_range, gamma_range=gamma_range, File "/home/thaocao/omnipose/omnipose/core.py", line 2351, in random_rotate_and_resize imgi[n], lbl[n], scale[n] = random_crop_warp(img, y, tyx, v1, v2, nchan, File "/home/thaocao/omnipose/omnipose/core.py", line 2469, in random_crop_warp lbl = do_warp(labels, M_inv, tyx, offset=offset, order=0, mode=mode) # order 0 is 'nearest neighbor' File "/home/thaocao/omnipose/omnipose/core.py", line 2577, in do_warp return affine_transform(A, M_inv, offset=offset, File "/home/thaocao/.conda/envs/omnipose/lib/python3.10/site-packages/scipy/ndimage/_interpolation.py", line 589, in affine_transform raise ValueError(msg) ValueError: Expected homogeneous transformation matrix with shape (3, 3) for image shape (160, 160), but bottom row was not equal to [0, 0, 1]

If anyone has encountered the same issue or has any suggestions, I'd super appreciate! Thank you!!

ThaoCao avatar Jun 21 '24 16:06 ThaoCao