text:
pyapetnet test fails

Hi Georg,
Making the first steps ...installation and test...I run into the following error.
Do you have any advice?
my environment:
Ubuntu 22.04.3 LTS, No GPU
Python 3.11.7
$ conda list | grep tensorflow
tensorflow                2.13.0                   pypi_0    pypi
tensorflow-estimator      2.13.0                   pypi_0    pypi
$ conda list | grep pyapetnet
pyapetnet                 1.5.1                    pypi_0    pypi
running the command:
$ pyapetnet_predict_from_nifti brainweb_06_osem.nii brainweb_06_t1.nii S2_osem_b10_fdg_pe2i
output:
2024-02-14 11:10:35.535062: I tensorflow/core/util/port.cc:110] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable TF_ENABLE_ONEDNN_OPTS=0.
2024-02-14 11:10:35.536186: I tensorflow/tsl/cuda/cudart_stub.cc:28] Could not find cuda drivers on your machine, GPU will not be used.
2024-02-14 11:10:35.560794: I tensorflow/tsl/cuda/cudart_stub.cc:28] Could not find cuda drivers on your machine, GPU will not be used.
2024-02-14 11:10:35.561065: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: AVX2 AVX512F AVX512_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.
2024-02-14 11:10:36.011034: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT
WARNING:tensorflow:SavedModel saved prior to TF 2.5 detected when loading Keras model. Please ensure that you are saving the model with model.save() or tf.keras.models.save_model(), NOT tf.saved_model.save(). To confirm, there should be a file named "keras_metadata.pb" in the SavedModel directory.
/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/layers/core/lambda_layer.py:327: UserWarning: tensorflow.python.keras.utils.multi_gpu_utils is not loaded, but a Lambda layer uses it. It may cause errors.
function = cls._parse_function_from_config(
Traceback (most recent call last):
File "/home/gkotek/anaconda3/envs/pyap/bin/pyapetnet_predict_from_nifti", line 8, in
sys.exit(main())
^^^^^^
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/pyapetnet/predict_from_nifti.py", line 124, in main
pred = model.predict(x).squeeze()
^^^^^^^^^^^^^^^^
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 70, in error_handler
raise e.with_traceback(filtered_tb) from None
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/tensorflow/python/eager/execute.py", line 53, in quick_execute
tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tensorflow.python.framework.errors_impl.InvalidArgumentError: Graph execution error:
Detected at node 'functional_3/functional_1/batchnorm_ind_0_0/FusedBatchNormV3_2' defined at (most recent call last):
File "/home/gkotek/anaconda3/envs/pyap/bin/pyapetnet_predict_from_nifti", line 8, in
sys.exit(main())
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/pyapetnet/predict_from_nifti.py", line 124, in main
pred = model.predict(x).squeeze()
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 65, in error_handler
return fn(*args, **kwargs)
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/engine/training.py", line 2554, in predict
tmp_batch_outputs = self.predict_function(iterator)
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/engine/training.py", line 2341, in predict_function
return step_function(self, iterator)
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/engine/training.py", line 2327, in step_function
outputs = model.distribute_strategy.run(run_step, args=(data,))
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/engine/training.py", line 2315, in run_step
outputs = model.predict_step(data)
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/engine/training.py", line 2283, in predict_step
return self(x, training=False)
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 65, in error_handler
return fn(*args, **kwargs)
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/engine/training.py", line 569, in call
return super().call(*args, **kwargs)
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 65, in error_handler
return fn(*args, **kwargs)
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/engine/base_layer.py", line 1150, in call
outputs = call_fn(inputs, *args, **kwargs)
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 96, in error_handler
return fn(*args, **kwargs)
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/engine/functional.py", line 512, in call
return self._run_internal_graph(inputs, training=training, mask=mask)
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/engine/functional.py", line 669, in _run_internal_graph
outputs = node.layer(*args, **kwargs)
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 65, in error_handler
return fn(*args, **kwargs)
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/engine/training.py", line 569, in call
return super().call(*args, **kwargs)
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 65, in error_handler
return fn(*args, **kwargs)
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/engine/base_layer.py", line 1150, in call
outputs = call_fn(inputs, *args, **kwargs)
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 96, in error_handler
return fn(*args, **kwargs)
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/engine/functional.py", line 512, in call
return self._run_internal_graph(inputs, training=training, mask=mask)
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/engine/functional.py", line 669, in _run_internal_graph
outputs = node.layer(*args, **kwargs)
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 65, in error_handler
return fn(*args, **kwargs)
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/engine/base_layer.py", line 1150, in call
outputs = call_fn(inputs, *args, **kwargs)
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 96, in error_handler
return fn(*args, **kwargs)
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/layers/normalization/batch_normalization.py", line 597, in call
outputs = self._fused_batch_norm(
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/layers/normalization/batch_normalization.py", line 990, in _fused_batch_norm
output, mean, variance = control_flow_util.smart_cond(
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/utils/control_flow_util.py", line 108, in smart_cond
return tf.internal.smart_cond.smart_cond(
File "/home/gkotek/anaconda3/envs/pyap/lib/python3.11/site-packages/keras/src/layers/normalization/batch_normalization.py", line 979, in _fused_batch_norm_inference
return tf.compat.v1.nn.fused_batch_norm(
Node: 'functional_3/functional_1/batchnorm_ind_0_0/FusedBatchNormV3_2'
scale must have the same number of elements as the channels of x, got 15 and 1
[[{{node functional_3/functional_1/batchnorm_ind_0_0/FusedBatchNormV3_2}}]] [Op:__inference_predict_function_14236]

Hi Gyula,
my first guess is that is because of incompatibilities in the new TF versions.
Can you try downgrading the TF version (to 2.2 or 2.3) and re-running the example?
Right now, the the dependency says TF>=2.2 because I was assuming that TF uses semantic
versioning, but that might be incorrect.
Georg

Hi Georg,
It seems that I needed to downgrade my python too then to <3.8.
I downgraded it to 3.8.18
Now I could install tensorflow 2.2.0
I had to reinstall pyapetnet. Done so successfully.
and now I have further incompatibility:
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
tensorflow 2.2.0 requires scipy==1.4.1; python_version >= "3", but you have scipy 1.10.1 which is incompatible.
tensorflow 2.2.0 requires tensorboard<2.3.0,>=2.2.0, but you have tensorboard 2.13.0 which is incompatible.
tensorflow 2.2.0 requires tensorflow-estimator<2.3.0,>=2.2.0, but you have tensorflow-estimator 2.13.0 which is incompatible.
I can go step by step eliminating dependency incompatibilities.
Or: maybe you have a list of a working environment? The Ubuntu version I can not change.

I suggest the following:

create a new and fresh python virtual env. e.g. using conda with tensorflow <2.5

conda create -n pyapetnet-tf_test -c conda-forge tensorflow=2.4

activate the env and install pyapetnet via pip

conda activate pyapetnet
pip install pyapetnet

By doing that all the dependencies should be ok.

Thanks,
I am on it...it may take a while for conda-forge (it is very slow), I will report back when it is done.
Now just waiting:
$ conda create -n pyapetnet-tf_test -c conda-forge tensorflow=2.4
Collecting package metadata (current_repodata.json): done
Solving environment: unsuccessful attempt using repodata from current_repodata.json, retrying with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: -

Hi,
up to pip install pyapetnet it went OK.
unfortunately that gives error, so did not manage to get a clean installation this way either:
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
tensorflow 2.4.3 requires absl-py~=0.10, but you have absl-py 2.1.0 which is incompatible.
tensorflow 2.4.3 requires flatbuffers~=1.12.0, but you have flatbuffers 23.5.26 which is incompatible.
tensorflow 2.4.3 requires tensorflow-estimator<2.5.0,>=2.4.0, but you have tensorflow-estimator 2.15.0 which is incompatible.
tensorflow 2.4.3 requires termcolor~=1.1.0, but you have termcolor 2.4.0 which is incompatible.
tensorflow 2.4.3 requires wrapt~=1.12.1, but you have wrapt 1.14.1 which is incompatible.
I run to check:
$ pyapetnet_predict_from_nifti brainweb_06_osem.nii brainweb_06_t1.nii S2_osem_b10_fdg_pe2i --show
Traceback (most recent call last):
File "/home/gkotek/anaconda3/envs/pyapetnet-tf_test/bin/pyapetnet_predict_from_nifti", line 8, in
sys.exit(main())
File "/home/gkotek/anaconda3/envs/pyapetnet-tf_test/lib/python3.9/site-packages/pyapetnet/predict_from_nifti.py", line 53, in main
import tensorflow as tf
File "/home/gkotek/anaconda3/envs/pyapetnet-tf_test/lib/python3.9/site-packages/tensorflow/init.py", line 48, in
from tensorflow._api.v2 import internal
File "/home/gkotek/anaconda3/envs/pyapetnet-tf_test/lib/python3.9/site-packages/tensorflow/_api/v2/internal/init.py", line 8, in
from tensorflow._api.v2.internal import autograph
File "/home/gkotek/anaconda3/envs/pyapetnet-tf_test/lib/python3.9/site-packages/tensorflow/_api/v2/internal/autograph/init.py", line 8, in
from tensorflow.python.autograph.core.ag_ctx import control_status_ctx # line: 34
File "/home/gkotek/anaconda3/envs/pyapetnet-tf_test/lib/python3.9/site-packages/tensorflow/python/autograph/core/ag_ctx.py", line 21, in
from tensorflow.python.autograph.utils import ag_logging
File "/home/gkotek/anaconda3/envs/pyapetnet-tf_test/lib/python3.9/site-packages/tensorflow/python/autograph/utils/init.py", line 17, in
from tensorflow.python.autograph.utils.context_managers import control_dependency_on_returns
File "/home/gkotek/anaconda3/envs/pyapetnet-tf_test/lib/python3.9/site-packages/tensorflow/python/autograph/utils/context_managers.py", line 19, in
from tensorflow.python.framework import ops
File "/home/gkotek/anaconda3/envs/pyapetnet-tf_test/lib/python3.9/site-packages/tensorflow/python/framework/ops.py", line 29, in
from tensorflow.core.framework import attr_value_pb2
File "/home/gkotek/anaconda3/envs/pyapetnet-tf_test/lib/python3.9/site-packages/tensorflow/core/framework/attr_value_pb2.py", line 5, in
from google.protobuf.internal import builder as _builder
File "/home/gkotek/anaconda3/envs/pyapetnet-tf_test/lib/python3.9/site-packages/google/protobuf/internal/builder.py", line 18, in
from google.protobuf.internal import python_message
File "/home/gkotek/anaconda3/envs/pyapetnet-tf_test/lib/python3.9/site-packages/google/protobuf/internal/python_message.py", line 36, in
from google.protobuf import descriptor as descriptor_mod
File "/home/gkotek/anaconda3/envs/pyapetnet-tf_test/lib/python3.9/site-packages/google/protobuf/descriptor.py", line 17, in
from google.protobuf.internal import api_implementation
File "/home/gkotek/anaconda3/envs/pyapetnet-tf_test/lib/python3.9/site-packages/google/protobuf/internal/api_implementation.py", line 81, in
from google.protobuf.pyext import _message
TypeError: bases must be types

Very annoying. One more try:
I suggest the following:

create a new and fresh python virtual env. and only install python 3.8

conda create -n pyapetnet-tf_test2 -c conda-forge python=3.8

activate the env and install tf=2.4 and pyapetnet via pip

conda activate pyapetnet-tf_test2
pip install tensorflow==2.4
pip install pyapetnet

This will install TF from pip and hopefully get around the dependecy problems ...
All very messy and annoying ...

Hm...still stuck with pyapetnet install
After successfully installing tensorflow 2.4.0 the pyapetnet pip install is not successful.
It seems that the pyapetnet pip install uninstalls packages that came with tensorflow pip install, and then installs newer versions. These break tensorflow dependencies.
Here is only the error message:
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
tensorflow 2.4.0 requires absl-py~=0.10, but you have absl-py 2.1.0 which is incompatible.
tensorflow 2.4.0 requires flatbuffers~=1.12.0, but you have flatbuffers 23.5.26 which is incompatible.
tensorflow 2.4.0 requires grpcio~=1.32.0, but you have grpcio 1.60.1 which is incompatible.
tensorflow 2.4.0 requires numpy~=1.19.2, but you have numpy 1.24.3 which is incompatible.
tensorflow 2.4.0 requires tensorflow-estimator<2.5.0,>=2.4.0rc0, but you have tensorflow-estimator 2.13.0 which is incompatible.
Here below is the output, where the uninstallation of absl-py and the other packages are captured:
Attempting uninstall: flatbuffers
Found existing installation: flatbuffers 1.12
Uninstalling flatbuffers-1.12:
Successfully uninstalled flatbuffers-1.12
Attempting uninstall: tensorflow-estimator
Found existing installation: tensorflow-estimator 2.4.0
Uninstalling tensorflow-estimator-2.4.0:
Successfully uninstalled tensorflow-estimator-2.4.0
Attempting uninstall: tensorboard-data-server
Found existing installation: tensorboard-data-server 0.6.1
Uninstalling tensorboard-data-server-0.6.1:
Successfully uninstalled tensorboard-data-server-0.6.1
Attempting uninstall: numpy
Found existing installation: numpy 1.19.5
Uninstalling numpy-1.19.5:
Successfully uninstalled numpy-1.19.5
Attempting uninstall: grpcio
Found existing installation: grpcio 1.32.0
Uninstalling grpcio-1.32.0:
Successfully uninstalled grpcio-1.32.0
Attempting uninstall: absl-py
Found existing installation: absl-py 0.15.0
Uninstalling absl-py-0.15.0:
Successfully uninstalled absl-py-0.15.0
Attempting uninstall: google-auth-oauthlib
Found existing installation: google-auth-oauthlib 0.4.6
Uninstalling google-auth-oauthlib-0.4.6:
Successfully uninstalled google-auth-oauthlib-0.4.6
Attempting uninstall: tensorboard
Found existing installation: tensorboard 2.11.2
Uninstalling tensorboard-2.11.2:
Successfully uninstalled tensorboard-2.11.2
Here is the entire output:
$ pip install pyapetnet
Collecting pyapetnet
Using cached pyapetnet-1.3.2-py3-none-any.whl (11.6 MB)
Collecting tensorflow-cpu>=2.2 (from pyapetnet)
Using cached tensorflow_cpu-2.13.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.4 kB)
Collecting pymirc>=0.22 (from pyapetnet)
Using cached pymirc-0.29-py3-none-any.whl.metadata (896 bytes)
Collecting nibabel>=3.0 (from pyapetnet)
Using cached nibabel-5.2.0-py3-none-any.whl.metadata (8.8 kB)
Collecting matplotlib>=3.1 (from pyapetnet)
Using cached matplotlib-3.7.4-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.metadata (5.7 kB)
Collecting pydicom>=2.0 (from pyapetnet)
Using cached pydicom-2.4.4-py3-none-any.whl.metadata (7.8 kB)
Collecting contourpy>=1.0.1 (from matplotlib>=3.1->pyapetnet)
Using cached contourpy-1.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.9 kB)
Collecting cycler>=0.10 (from matplotlib>=3.1->pyapetnet)
Using cached cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB)
Collecting fonttools>=4.22.0 (from matplotlib>=3.1->pyapetnet)
Using cached fonttools-4.48.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (158 kB)
Collecting kiwisolver>=1.0.1 (from matplotlib>=3.1->pyapetnet)
Using cached kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl.metadata (6.4 kB)
Collecting numpy<2,>=1.20 (from matplotlib>=3.1->pyapetnet)
Using cached numpy-1.24.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.6 kB)
Collecting packaging>=20.0 (from matplotlib>=3.1->pyapetnet)
Using cached packaging-23.2-py3-none-any.whl.metadata (3.2 kB)
Collecting pillow>=6.2.0 (from matplotlib>=3.1->pyapetnet)
Using cached pillow-10.2.0-cp38-cp38-manylinux_2_28_x86_64.whl.metadata (9.7 kB)
Collecting pyparsing>=2.3.1 (from matplotlib>=3.1->pyapetnet)
Using cached pyparsing-3.1.1-py3-none-any.whl.metadata (5.1 kB)
Collecting python-dateutil>=2.7 (from matplotlib>=3.1->pyapetnet)
Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
Collecting importlib-resources>=3.2.0 (from matplotlib>=3.1->pyapetnet)
Using cached importlib_resources-6.1.1-py3-none-any.whl.metadata (4.1 kB)
Collecting scipy>=1.1 (from pymirc>=0.22->pyapetnet)
Using cached scipy-1.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (34.5 MB)
Collecting scikit-image>=0.14 (from pymirc>=0.22->pyapetnet)
Using cached scikit_image-0.21.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (14 kB)
Collecting numba>=0.39 (from pymirc>=0.22->pyapetnet)
Using cached numba-0.58.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.7 kB)
Collecting absl-py>=1.0.0 (from tensorflow-cpu>=2.2->pyapetnet)
Using cached absl_py-2.1.0-py3-none-any.whl.metadata (2.3 kB)
Requirement already satisfied: astunparse>=1.6.0 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from tensorflow-cpu>=2.2->pyapetnet) (1.6.3)
Collecting flatbuffers>=23.1.21 (from tensorflow-cpu>=2.2->pyapetnet)
Using cached flatbuffers-23.5.26-py2.py3-none-any.whl.metadata (850 bytes)
Requirement already satisfied: gast<=0.4.0,>=0.2.1 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from tensorflow-cpu>=2.2->pyapetnet) (0.3.3)
Requirement already satisfied: google-pasta>=0.1.1 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from tensorflow-cpu>=2.2->pyapetnet) (0.2.0)
Requirement already satisfied: grpcio<2.0,>=1.24.3 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from tensorflow-cpu>=2.2->pyapetnet) (1.32.0)
Requirement already satisfied: h5py>=2.9.0 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from tensorflow-cpu>=2.2->pyapetnet) (2.10.0)
Collecting keras<2.14,>=2.13.1 (from tensorflow-cpu>=2.2->pyapetnet)
Using cached keras-2.13.1-py3-none-any.whl.metadata (2.4 kB)
Collecting libclang>=13.0.0 (from tensorflow-cpu>=2.2->pyapetnet)
Using cached libclang-16.0.6-py2.py3-none-manylinux2010_x86_64.whl.metadata (5.2 kB)
Collecting numpy<2,>=1.20 (from matplotlib>=3.1->pyapetnet)
Downloading numpy-1.24.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.6 kB)
Requirement already satisfied: opt-einsum>=2.3.2 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from tensorflow-cpu>=2.2->pyapetnet) (3.3.0)
Requirement already satisfied: protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.20.3 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from tensorflow-cpu>=2.2->pyapetnet) (3.20.3)
Requirement already satisfied: setuptools in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from tensorflow-cpu>=2.2->pyapetnet) (69.0.3)
Requirement already satisfied: six>=1.12.0 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from tensorflow-cpu>=2.2->pyapetnet) (1.15.0)
Collecting tensorboard<2.14,>=2.13 (from tensorflow-cpu>=2.2->pyapetnet)
Using cached tensorboard-2.13.0-py3-none-any.whl.metadata (1.8 kB)
Collecting tensorflow-estimator<2.14,>=2.13.0 (from tensorflow-cpu>=2.2->pyapetnet)
Using cached tensorflow_estimator-2.13.0-py2.py3-none-any.whl.metadata (1.3 kB)
Requirement already satisfied: termcolor>=1.1.0 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from tensorflow-cpu>=2.2->pyapetnet) (1.1.0)
Requirement already satisfied: typing-extensions<4.6.0,>=3.6.6 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from tensorflow-cpu>=2.2->pyapetnet) (3.7.4.3)
Requirement already satisfied: wrapt>=1.11.0 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from tensorflow-cpu>=2.2->pyapetnet) (1.12.1)
Collecting tensorflow-io-gcs-filesystem>=0.23.1 (from tensorflow-cpu>=2.2->pyapetnet)
Using cached tensorflow_io_gcs_filesystem-0.34.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.metadata (14 kB)
Requirement already satisfied: wheel<1.0,>=0.23.0 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from astunparse>=1.6.0->tensorflow-cpu>=2.2->pyapetnet) (0.42.0)
Requirement already satisfied: zipp>=3.1.0 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from importlib-resources>=3.2.0->matplotlib>=3.1->pyapetnet) (3.17.0)
Collecting llvmlite<0.42,>=0.41.0dev0 (from numba>=0.39->pymirc>=0.22->pyapetnet)
Using cached llvmlite-0.41.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.8 kB)
Requirement already satisfied: importlib-metadata in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from numba>=0.39->pymirc>=0.22->pyapetnet) (7.0.1)
Collecting networkx>=2.8 (from scikit-image>=0.14->pymirc>=0.22->pyapetnet)
Using cached networkx-3.1-py3-none-any.whl (2.1 MB)
Collecting imageio>=2.27 (from scikit-image>=0.14->pymirc>=0.22->pyapetnet)
Using cached imageio-2.34.0-py3-none-any.whl.metadata (4.9 kB)
Collecting tifffile>=2022.8.12 (from scikit-image>=0.14->pymirc>=0.22->pyapetnet)
Using cached tifffile-2023.7.10-py3-none-any.whl.metadata (31 kB)
Collecting PyWavelets>=1.1.1 (from scikit-image>=0.14->pymirc>=0.22->pyapetnet)
Using cached PyWavelets-1.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.9 MB)
Collecting lazy_loader>=0.2 (from scikit-image>=0.14->pymirc>=0.22->pyapetnet)
Using cached lazy_loader-0.3-py3-none-any.whl.metadata (4.3 kB)
Collecting grpcio<2.0,>=1.24.3 (from tensorflow-cpu>=2.2->pyapetnet)
Using cached grpcio-1.60.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.0 kB)
Requirement already satisfied: google-auth<3,>=1.6.3 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from tensorboard<2.14,>=2.13->tensorflow-cpu>=2.2->pyapetnet) (2.27.0)
Collecting google-auth-oauthlib<1.1,>=0.5 (from tensorboard<2.14,>=2.13->tensorflow-cpu>=2.2->pyapetnet)
Using cached google_auth_oauthlib-1.0.0-py2.py3-none-any.whl (18 kB)
Requirement already satisfied: markdown>=2.6.8 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from tensorboard<2.14,>=2.13->tensorflow-cpu>=2.2->pyapetnet) (3.5.2)
Requirement already satisfied: requests<3,>=2.21.0 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from tensorboard<2.14,>=2.13->tensorflow-cpu>=2.2->pyapetnet) (2.31.0)
Collecting tensorboard-data-server<0.8.0,>=0.7.0 (from tensorboard<2.14,>=2.13->tensorflow-cpu>=2.2->pyapetnet)
Using cached tensorboard_data_server-0.7.2-py3-none-manylinux_2_31_x86_64.whl.metadata (1.1 kB)
Requirement already satisfied: werkzeug>=1.0.1 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from tensorboard<2.14,>=2.13->tensorflow-cpu>=2.2->pyapetnet) (3.0.1)
Requirement already satisfied: cachetools<6.0,>=2.0.0 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from google-auth<3,>=1.6.3->tensorboard<2.14,>=2.13->tensorflow-cpu>=2.2->pyapetnet) (5.3.2)
Requirement already satisfied: pyasn1-modules>=0.2.1 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from google-auth<3,>=1.6.3->tensorboard<2.14,>=2.13->tensorflow-cpu>=2.2->pyapetnet) (0.3.0)
Requirement already satisfied: rsa<5,>=3.1.4 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from google-auth<3,>=1.6.3->tensorboard<2.14,>=2.13->tensorflow-cpu>=2.2->pyapetnet) (4.9)
Requirement already satisfied: requests-oauthlib>=0.7.0 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from google-auth-oauthlib<1.1,>=0.5->tensorboard<2.14,>=2.13->tensorflow-cpu>=2.2->pyapetnet) (1.3.1)
Requirement already satisfied: charset-normalizer<4,>=2 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from requests<3,>=2.21.0->tensorboard<2.14,>=2.13->tensorflow-cpu>=2.2->pyapetnet) (3.3.2)
Requirement already satisfied: idna<4,>=2.5 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from requests<3,>=2.21.0->tensorboard<2.14,>=2.13->tensorflow-cpu>=2.2->pyapetnet) (3.6)
Requirement already satisfied: urllib3<3,>=1.21.1 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from requests<3,>=2.21.0->tensorboard<2.14,>=2.13->tensorflow-cpu>=2.2->pyapetnet) (2.2.0)
Requirement already satisfied: certifi>=2017.4.17 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from requests<3,>=2.21.0->tensorboard<2.14,>=2.13->tensorflow-cpu>=2.2->pyapetnet) (2024.2.2)
Requirement already satisfied: MarkupSafe>=2.1.1 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from werkzeug>=1.0.1->tensorboard<2.14,>=2.13->tensorflow-cpu>=2.2->pyapetnet) (2.1.5)
Requirement already satisfied: pyasn1<0.6.0,>=0.4.6 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard<2.14,>=2.13->tensorflow-cpu>=2.2->pyapetnet) (0.5.1)
Requirement already satisfied: oauthlib>=3.0.0 in /home/gkotek/anaconda3/envs/pyapetnet-tf_test2/lib/python3.8/site-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<1.1,>=0.5->tensorboard<2.14,>=2.13->tensorflow-cpu>=2.2->pyapetnet) (3.2.2)
Using cached matplotlib-3.7.4-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (9.2 MB)
Using cached nibabel-5.2.0-py3-none-any.whl (3.3 MB)
Using cached pydicom-2.4.4-py3-none-any.whl (1.8 MB)
Using cached pymirc-0.29-py3-none-any.whl (52 kB)
Using cached tensorflow_cpu-2.13.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (186.5 MB)
Using cached absl_py-2.1.0-py3-none-any.whl (133 kB)
Using cached contourpy-1.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (301 kB)
Using cached cycler-0.12.1-py3-none-any.whl (8.3 kB)
Using cached flatbuffers-23.5.26-py2.py3-none-any.whl (26 kB)
Using cached fonttools-4.48.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.7 MB)
Using cached importlib_resources-6.1.1-py3-none-any.whl (33 kB)
Using cached keras-2.13.1-py3-none-any.whl (1.7 MB)
Using cached kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl (1.2 MB)
Using cached libclang-16.0.6-py2.py3-none-manylinux2010_x86_64.whl (22.9 MB)
Using cached numba-0.58.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.7 MB)
Using cached numpy-1.24.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.3 MB)
Using cached packaging-23.2-py3-none-any.whl (53 kB)
Using cached pillow-10.2.0-cp38-cp38-manylinux_2_28_x86_64.whl (4.5 MB)
Using cached pyparsing-3.1.1-py3-none-any.whl (103 kB)
Using cached scikit_image-0.21.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.9 MB)
Using cached tensorboard-2.13.0-py3-none-any.whl (5.6 MB)
Using cached grpcio-1.60.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.4 MB)
Using cached tensorflow_estimator-2.13.0-py2.py3-none-any.whl (440 kB)
Using cached tensorflow_io_gcs_filesystem-0.34.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (2.4 MB)
Using cached imageio-2.34.0-py3-none-any.whl (313 kB)
Using cached lazy_loader-0.3-py3-none-any.whl (9.1 kB)
Using cached llvmlite-0.41.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (43.6 MB)
Using cached tensorboard_data_server-0.7.2-py3-none-manylinux_2_31_x86_64.whl (6.6 MB)
Using cached tifffile-2023.7.10-py3-none-any.whl (220 kB)
Installing collected packages: libclang, flatbuffers, tensorflow-io-gcs-filesystem, tensorflow-estimator, tensorboard-data-server, python-dateutil, pyparsing, pydicom, pillow, packaging, numpy, networkx, llvmlite, lazy_loader, kiwisolver, keras, importlib-resources, grpcio, fonttools, cycler, absl-py, tifffile, scipy, PyWavelets, numba, nibabel, imageio, contourpy, scikit-image, matplotlib, google-auth-oauthlib, tensorboard, pymirc, tensorflow-cpu, pyapetnet
Attempting uninstall: flatbuffers
Found existing installation: flatbuffers 1.12
Uninstalling flatbuffers-1.12:
Successfully uninstalled flatbuffers-1.12
Attempting uninstall: tensorflow-estimator
Found existing installation: tensorflow-estimator 2.4.0
Uninstalling tensorflow-estimator-2.4.0:
Successfully uninstalled tensorflow-estimator-2.4.0
Attempting uninstall: tensorboard-data-server
Found existing installation: tensorboard-data-server 0.6.1
Uninstalling tensorboard-data-server-0.6.1:
Successfully uninstalled tensorboard-data-server-0.6.1
Attempting uninstall: numpy
Found existing installation: numpy 1.19.5
Uninstalling numpy-1.19.5:
Successfully uninstalled numpy-1.19.5
Attempting uninstall: grpcio
Found existing installation: grpcio 1.32.0
Uninstalling grpcio-1.32.0:
Successfully uninstalled grpcio-1.32.0
Attempting uninstall: absl-py
Found existing installation: absl-py 0.15.0
Uninstalling absl-py-0.15.0:
Successfully uninstalled absl-py-0.15.0
Attempting uninstall: google-auth-oauthlib
Found existing installation: google-auth-oauthlib 0.4.6
Uninstalling google-auth-oauthlib-0.4.6:
Successfully uninstalled google-auth-oauthlib-0.4.6
Attempting uninstall: tensorboard
Found existing installation: tensorboard 2.11.2
Uninstalling tensorboard-2.11.2:
Successfully uninstalled tensorboard-2.11.2
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
tensorflow 2.4.0 requires absl-py~=0.10, but you have absl-py 2.1.0 which is incompatible.
tensorflow 2.4.0 requires flatbuffers~=1.12.0, but you have flatbuffers 23.5.26 which is incompatible.
tensorflow 2.4.0 requires grpcio~=1.32.0, but you have grpcio 1.60.1 which is incompatible.
tensorflow 2.4.0 requires numpy~=1.19.2, but you have numpy 1.24.3 which is incompatible.
tensorflow 2.4.0 requires tensorflow-estimator<2.5.0,>=2.4.0rc0, but you have tensorflow-estimator 2.13.0 which is incompatible.
Successfully installed PyWavelets-1.4.1 absl-py-2.1.0 contourpy-1.1.1 cycler-0.12.1 flatbuffers-23.5.26 fonttools-4.48.1 google-auth-oauthlib-1.0.0 grpcio-1.60.1 imageio-2.34.0 importlib-resources-6.1.1 keras-2.13.1 kiwisolver-1.4.5 lazy_loader-0.3 libclang-16.0.6 llvmlite-0.41.1 matplotlib-3.7.4 networkx-3.1 nibabel-5.2.0 numba-0.58.1 numpy-1.24.3 packaging-23.2 pillow-10.2.0 pyapetnet-1.3.2 pydicom-2.4.4 pymirc-0.29 pyparsing-3.1.1 python-dateutil-2.8.2 scikit-image-0.21.0 scipy-1.10.1 tensorboard-2.13.0 tensorboard-data-server-0.7.2 tensorflow-cpu-2.13.1 tensorflow-estimator-2.13.0 tensorflow-io-gcs-filesystem-0.34.0 tifffile-2023.7.10

Maybe a way forward:
Mixing conda and pip may not be a good idea.
A cleaner install could be leaving Conda out of this and use
python -m venv
and then install everything from requirements.txt
...?

That is definitely sth to try. Indeed mixing conda and pip can cause problems.
Let me me know if that works better. (make sure that you adapt the req.txt to have tensorflow <=2.4)

OK,
I was actually expecting that you will send me a requirements.txt file from a working virtual environment with:
$ pip freeze > requirements.txt
I would also need the info:

OS (preferably Ubuntu 22.04.3 LTS)
the Python3 version (I assume Python 3.8.18).

Then I can start debugging the pyapetnet installation procedure, ie why is it broken as is.
And then I can start repair the dependencies step by step.
(Ie: What I tried so far was with the last few suggested solutions, but I got into circular reference of mutually excluding dependency requirements)
Best,
Gyula

Ah sorry, the requirements are listed in the setup.py here:
https://github.com/gschramm/pyapetnet/blob/2d73b89c1912d39eed03bee6f8d0390470eaaf9a/setup.py#L32
tensorflow should be <=2.4 and python=3.8 (probably)
Georg

Hi Georg,
I used only python -m venv to create virtual environment.
The requirements you pointed out were all satisfied, installation was smooth.
Last step of installation of pyapetnet worked out (mostly "requirement already satisfied").
All seems to be in place, BUT
test run fails:
$ pyapetnet_predict_from_nifti brainweb_06_osem.nii brainweb_06_t1.nii S2_osem_b10_fdg_pe2i --show
Last output (same as in any installation so far):
File "/home/gkotek/AGrecon/demo_data/p38/lib/python3.8/site-packages/keras/src/layers/normalization/batch_normalization.py", line 979, in _fused_batch_norm_inference
return tf.compat.v1.nn.fused_batch_norm(
Node: 'functional_3/functional_1/batchnorm_ind_0_1/FusedBatchNormV3'
scale must have the same number of elements as the channels of x, got 15 and 1
I tried with Python3.10, also python3.8
At this point I have no further idea how to fix this....

That is indeed very frustrating. Can you do you last test and try with tensorflow==2.2?

I finally had time to try myself on a linux GPU server. For me the following works without problems
mamba create -n pyapetnet pyapetnet
mamba activate pyapetnet
pyapetnet_predict_from_nifti brainweb_06_osem.nii brainweb_06_t1.nii S2_osem_b10_fdg_pe2i --show

If you don't have mamba, use conda -c conda-forge
Can you try the same?
LSB Version:	core-11.1.0ubuntu2-noarch:security-11.1.0ubuntu2-noarch
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.6 LTS
Release:	20.04
Codename:	focal

# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       2_gnu    conda-forge
absl-py                   2.1.0              pyhd8ed1ab_0    conda-forge
aiohttp                   3.9.3           py311h459d7ec_0    conda-forge
aiosignal                 1.3.1              pyhd8ed1ab_0    conda-forge
aom                       3.8.1                h59595ed_0    conda-forge
astunparse                1.6.3              pyhd8ed1ab_0    conda-forge
attrs                     23.2.0             pyh71513ae_0    conda-forge
blinker                   1.7.0              pyhd8ed1ab_0    conda-forge
blosc                     1.21.5               h0f2a231_0    conda-forge
brotli                    1.1.0                hd590300_1    conda-forge
brotli-bin                1.1.0                hd590300_1    conda-forge
brotli-python             1.1.0           py311hb755f60_1    conda-forge
brunsli                   0.1                  h9c3ff4c_0    conda-forge
bzip2                     1.0.8                hd590300_5    conda-forge
c-ares                    1.26.0               hd590300_0    conda-forge
c-blosc2                  2.13.2               hb4ffafa_0    conda-forge
ca-certificates           2024.2.2             hbcca054_0    conda-forge
cached-property           1.5.2                hd8ed1ab_1    conda-forge
cached_property           1.5.2              pyha770c72_1    conda-forge
cachetools                5.3.2              pyhd8ed1ab_0    conda-forge
certifi                   2024.2.2           pyhd8ed1ab_0    conda-forge
cffi                      1.16.0          py311hb3a22ac_0    conda-forge
charls                    2.4.2                h59595ed_0    conda-forge
charset-normalizer        3.3.2              pyhd8ed1ab_0    conda-forge
click                     8.1.7           unix_pyh707e725_0    conda-forge
contourpy                 1.2.0           py311h9547e67_0    conda-forge
cryptography              42.0.3          py311h63ff55d_0    conda-forge
cuda-crt-tools            12.3.107             ha770c72_0    conda-forge
cuda-cudart               12.3.101             hd3aeb46_0    conda-forge
cuda-cudart_linux-64      12.3.101             h59595ed_0    conda-forge
cuda-nvcc-tools           12.3.107             hd3aeb46_0    conda-forge
cuda-nvrtc                12.3.107             hd3aeb46_0    conda-forge
cuda-nvtx                 12.3.101             h59595ed_0    conda-forge
cuda-nvvm-tools           12.3.107             h59595ed_0    conda-forge
cuda-version              12.3                 h32bc705_2    conda-forge
cudnn                     8.8.0.121            h264754d_4    conda-forge
cycler                    0.12.1             pyhd8ed1ab_0    conda-forge
dav1d                     1.2.1                hd590300_0    conda-forge
eigen                     3.4.0                h00ab1b0_0    conda-forge
expat                     2.5.0                hcb278e6_1    conda-forge
fftw                      3.3.10          nompi_hc118613_108    conda-forge
flatbuffers               23.5.26              h59595ed_1    conda-forge
fonttools                 4.49.0          py311h459d7ec_0    conda-forge
freetype                  2.12.1               h267a509_2    conda-forge
frozenlist                1.4.1           py311h459d7ec_0    conda-forge
gast                      0.5.4              pyhd8ed1ab_0    conda-forge
giflib                    5.2.1                h0b41bf4_3    conda-forge
google-auth               2.28.0             pyhca7485f_0    conda-forge
google-auth-oauthlib      1.2.0              pyhd8ed1ab_0    conda-forge
google-pasta              0.2.0              pyh8c360ce_0    conda-forge
grpcio                    1.59.3          py311ha6695c7_0    conda-forge
h5py                      3.10.0          nompi_py311hebc2b07_101    conda-forge
hdf5                      1.14.3          nompi_h4f84152_100    conda-forge
icu                       73.2                 h59595ed_0    conda-forge
idna                      3.6                pyhd8ed1ab_0    conda-forge
imagecodecs               2024.1.1        py311h089f87a_0    conda-forge
imageio                   2.34.0             pyh4b66e23_0    conda-forge
importlib-metadata        7.0.1              pyha770c72_0    conda-forge
importlib_resources       6.1.1              pyhd8ed1ab_0    conda-forge
jxrlib                    1.1                  hd590300_3    conda-forge
keras                     2.15.0             pyhd8ed1ab_0    conda-forge
keyutils                  1.6.1                h166bdaf_0    conda-forge
kiwisolver                1.4.5           py311h9547e67_1    conda-forge
krb5                      1.21.2               h659d440_0    conda-forge
lazy_loader               0.3                pyhd8ed1ab_0    conda-forge
lcms2                     2.16                 hb7c19ff_0    conda-forge
ld_impl_linux-64          2.40                 h41732ed_0    conda-forge
lerc                      4.0.0                h27087fc_0    conda-forge
libabseil                 20230802.1      cxx17_h59595ed_0    conda-forge
libaec                    1.1.2                h59595ed_1    conda-forge
libavif16                 1.0.4                h1dcd450_0    conda-forge
libblas                   3.9.0           21_linux64_openblas    conda-forge
libbrotlicommon           1.1.0                hd590300_1    conda-forge
libbrotlidec              1.1.0                hd590300_1    conda-forge
libbrotlienc              1.1.0                hd590300_1    conda-forge
libcblas                  3.9.0           21_linux64_openblas    conda-forge
libcublas                 12.3.4.1             hd3aeb46_0    conda-forge
libcufft                  11.0.12.1            hd3aeb46_0    conda-forge
libcurand                 10.3.4.107           hd3aeb46_0    conda-forge
libcurl                   8.5.0                hca28451_0    conda-forge
libcusolver               11.5.4.101           hd3aeb46_0    conda-forge
libcusparse               12.2.0.103           hd3aeb46_0    conda-forge
libdeflate                1.19                 hd590300_0    conda-forge
libedit                   3.1.20191231         he28a2e2_2    conda-forge
libev                     4.33                 hd590300_2    conda-forge
libexpat                  2.5.0                hcb278e6_1    conda-forge
libffi                    3.4.2                h7f98852_5    conda-forge
libgcc-ng                 13.2.0               h807b86a_5    conda-forge
libgfortran-ng            13.2.0               h69a702a_5    conda-forge
libgfortran5              13.2.0               ha4646dd_5    conda-forge
libgomp                   13.2.0               h807b86a_5    conda-forge
libgrpc                   1.59.3               hd6c4280_0    conda-forge
libhwloc                  2.9.3           default_h554bfaf_1009    conda-forge
libiconv                  1.17                 hd590300_2    conda-forge
libitk                    5.3.0                h26001f5_8    conda-forge
libjpeg-turbo             3.0.0                hd590300_1    conda-forge
liblapack                 3.9.0           21_linux64_openblas    conda-forge
libllvm14                 14.0.6               hcd5def8_4    conda-forge
libnghttp2                1.58.0               h47da74e_1    conda-forge
libnsl                    2.0.1                hd590300_0    conda-forge
libnvjitlink              12.3.101             hd3aeb46_0    conda-forge
libopenblas               0.3.26          pthreads_h413a1c8_0    conda-forge
libpng                    1.6.42               h2797004_0    conda-forge
libprotobuf               4.24.4               hf27288f_0    conda-forge
libre2-11                 2023.06.02           h7a70373_0    conda-forge
libsqlite                 3.45.1               h2797004_0    conda-forge
libssh2                   1.11.0               h0841786_0    conda-forge
libstdcxx-ng              13.2.0               h7e041cc_5    conda-forge
libtiff                   4.6.0                ha9c0a0a_2    conda-forge
libuuid                   2.38.1               h0b41bf4_0    conda-forge
libwebp-base              1.3.2                hd590300_0    conda-forge
libxcb                    1.15                 h0b41bf4_0    conda-forge
libxcrypt                 4.4.36               hd590300_1    conda-forge
libxml2                   2.12.5               h232c23b_0    conda-forge
libzlib                   1.2.13               hd590300_5    conda-forge
libzopfli                 1.0.3                h9c3ff4c_0    conda-forge
llvmlite                  0.42.0          py311ha6695c7_1    conda-forge
lz4-c                     1.9.4                hcb278e6_0    conda-forge
markdown                  3.5.2              pyhd8ed1ab_0    conda-forge
markupsafe                2.1.5           py311h459d7ec_0    conda-forge
matplotlib-base           3.8.3           py311h54ef318_0    conda-forge
ml_dtypes                 0.2.0           py311h320fe9a_2    conda-forge
multidict                 6.0.5           py311h459d7ec_0    conda-forge
munkres                   1.1.4              pyh9f0ad1d_0    conda-forge
nccl                      2.20.3.1             h3a97aeb_0    conda-forge
ncurses                   6.4                  h59595ed_2    conda-forge
networkx                  3.2.1              pyhd8ed1ab_0    conda-forge
nibabel                   5.2.0              pyha770c72_0    conda-forge
numba                     0.59.0          py311h96b013e_1    conda-forge
numpy                     1.26.4          py311h64a7726_0    conda-forge
oauthlib                  3.2.2              pyhd8ed1ab_0    conda-forge
openjpeg                  2.5.0                h488ebb8_3    conda-forge
openssl                   3.2.1                hd590300_0    conda-forge
opt_einsum                3.3.0              pyhc1e730c_2    conda-forge
packaging                 23.2               pyhd8ed1ab_0    conda-forge
pillow                    10.2.0          py311ha6c5da5_0    conda-forge
pip                       24.0               pyhd8ed1ab_0    conda-forge
protobuf                  4.24.4          py311h46cbc50_0    conda-forge
pthread-stubs             0.4               h36c2ea0_1001    conda-forge
pyapetnet                 1.5.1              pyhd8ed1ab_0    conda-forge
pyasn1                    0.5.1              pyhd8ed1ab_0    conda-forge
pyasn1-modules            0.3.0              pyhd8ed1ab_0    conda-forge
pycparser                 2.21               pyhd8ed1ab_0    conda-forge
pydicom                   2.4.4              pyhd8ed1ab_0    conda-forge
pyjwt                     2.8.0              pyhd8ed1ab_1    conda-forge
pymirc                    0.29               pyhd8ed1ab_0    conda-forge
pyopenssl                 24.0.0             pyhd8ed1ab_0    conda-forge
pyparsing                 3.1.1              pyhd8ed1ab_0    conda-forge
pysocks                   1.7.1              pyha2e5f31_6    conda-forge
python                    3.11.8          hab00c5b_0_cpython    conda-forge
python-dateutil           2.8.2              pyhd8ed1ab_0    conda-forge
python-flatbuffers        23.5.26            pyhd8ed1ab_0    conda-forge
python_abi                3.11                    4_cp311    conda-forge
pyu2f                     0.1.5              pyhd8ed1ab_0    conda-forge
pywavelets                1.4.1           py311h1f0f07a_1    conda-forge
rav1e                     0.6.6                he8a937b_2    conda-forge
re2                       2023.06.02           h2873b5e_0    conda-forge
readline                  8.2                  h8228510_1    conda-forge
requests                  2.31.0             pyhd8ed1ab_0    conda-forge
requests-oauthlib         1.3.1              pyhd8ed1ab_0    conda-forge
rsa                       4.9                pyhd8ed1ab_0    conda-forge
scikit-image              0.22.0          py311h320fe9a_2    conda-forge
scipy                     1.12.0          py311h64a7726_2    conda-forge
setuptools                69.1.0             pyhd8ed1ab_0    conda-forge
simpleitk                 2.3.1           py311hb755f60_2    conda-forge
six                       1.16.0             pyh6c4a22f_0    conda-forge
snappy                    1.1.10               h9fff704_0    conda-forge
svt-av1                   1.8.0                h59595ed_0    conda-forge
tbb                       2021.11.0            h00ab1b0_1    conda-forge
tensorboard               2.15.2             pyhd8ed1ab_0    conda-forge
tensorboard-data-server   0.7.0           py311h63ff55d_1    conda-forge
tensorflow                2.15.0          cuda120py311h5cbd639_3    conda-forge
tensorflow-base           2.15.0          cuda120py311h43b5e44_3    conda-forge
tensorflow-estimator      2.15.0          cuda120py311hf663016_3    conda-forge
termcolor                 2.4.0              pyhd8ed1ab_0    conda-forge
tifffile                  2024.2.12          pyhd8ed1ab_0    conda-forge
tk                        8.6.13          noxft_h4845f30_101    conda-forge
typing_extensions         4.9.0              pyha770c72_0    conda-forge
tzdata                    2024a                h0c530f3_0    conda-forge
urllib3                   2.2.1              pyhd8ed1ab_0    conda-forge
werkzeug                  3.0.1              pyhd8ed1ab_0    conda-forge
wheel                     0.42.0             pyhd8ed1ab_0    conda-forge
wrapt                     1.14.1          py311hd4cff14_1    conda-forge
xorg-libxau               1.0.11               hd590300_0    conda-forge
xorg-libxdmcp             1.1.3                h7f98852_0    conda-forge
xz                        5.2.6                h166bdaf_0    conda-forge
yarl                      1.9.4           py311h459d7ec_0    conda-forge
zfp                       1.0.1                h59595ed_0    conda-forge
zipp                      3.17.0             pyhd8ed1ab_0    conda-forge
zlib                      1.2.13               hd590300_5    conda-forge
zlib-ng                   2.0.7                h0b41bf4_0    conda-forge
zstd                      1.5.5                hfc55251_0    conda-forge

OK,
I tried this with conda: (after this I will try to install mamba)
$ conda create -n pyapetnet -c conda-forge tensorflow=2.2
Then
$ conda activate pyapetnet
Then
$ pyapetnet_predict_from_nifti brainweb_06_osem.nii brainweb_06_t1.nii S2_osem_b10_fdg_pe2i —show
Output:
Traceback (most recent call last):
File "/home/gkotek/.local/bin/pyapetnet_predict_from_nifti", line 8, in
sys.exit(main())
File "/home/gkotek/.local/lib/python3.10/site-packages/pyapetnet/predict_from_nifti.py", line 49, in main
from pyapetnet.utils import load_nii_in_ras
File "/home/gkotek/.local/lib/python3.10/site-packages/pyapetnet/utils.py", line 5, in
from pymirc.fileio import write_3d_static_dicom
File "/home/gkotek/.local/lib/python3.10/site-packages/pymirc/init.py", line 1, in
from . import fileio
File "/home/gkotek/.local/lib/python3.10/site-packages/pymirc/fileio/init.py", line 5, in
from .labelvol_to_rtstruct import labelvol_to_rtstruct
File "/home/gkotek/.local/lib/python3.10/site-packages/pymirc/fileio/labelvol_to_rtstruct.py", line 1, in
import pymirc.image_operations as pymi
File "/home/gkotek/.local/lib/python3.10/site-packages/pymirc/image_operations/init.py", line 6, in
from .binary_2d_image_to_contours import binary_2d_image_to_contours
File "/home/gkotek/.local/lib/python3.10/site-packages/pymirc/image_operations/binary_2d_image_to_contours.py", line 6, in
from skimage import measure
File "/home/gkotek/.local/lib/python3.10/site-packages/skimage/init.py", line 122, in
from ._shared import geometry
File "geometry.pyx", line 1, in init skimage._shared.geometry
ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject

On 19 Feb 2024, at 17:19, Georg Schramm @.***> wrote:
pyapetnet_predict_from_nifti brainweb_06_osem.nii brainweb_06_t1.nii S2_osem_b10_fdg_pe2i --show

Hi,
Could you pls make a requirements file and send it? Like this:
$ conda list -e > requirements.txt
Then the requirements.txt file has a format like this:
_libgcc_mutex=0.1=conda_forge
_openmp_mutex=4.5=2_gnu
_tflow_select=2.3.0=mkl
absl-py=2.1.0=pyhd8ed1ab_0
...
And then it is easy to install it for me like this:
$ conda install --yes --file requirements.txt
I.e.: My list is nowhere near your list.
Gyula

On 19 Feb 2024, at 17:19, Georg Schramm @.***> wrote:
I finally had time to try myself on a linux GPU server. For me the following works without problems
mamba create -n pyapetnet pyapetnet
mamba activate pyapetnet
pyapetnet_predict_from_nifti brainweb_06_osem.nii brainweb_06_t1.nii S2_osem_b10_fdg_pe2i --show
If you don't have mamba, use conda -c conda-forge
Can you try the same?
LSB Version:	core-11.1.0ubuntu2-noarch:security-11.1.0ubuntu2-noarch
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.6 LTS
Release:	20.04
Codename:	focal
Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       2_gnu    conda-forge
absl-py                   2.1.0              pyhd8ed1ab_0    conda-forge
aiohttp                   3.9.3           py311h459d7ec_0    conda-forge
aiosignal                 1.3.1              pyhd8ed1ab_0    conda-forge
aom                       3.8.1                h59595ed_0    conda-forge
astunparse                1.6.3              pyhd8ed1ab_0    conda-forge
attrs                     23.2.0             pyh71513ae_0    conda-forge
blinker                   1.7.0              pyhd8ed1ab_0    conda-forge
blosc                     1.21.5               h0f2a231_0    conda-forge
brotli                    1.1.0                hd590300_1    conda-forge
brotli-bin                1.1.0                hd590300_1    conda-forge
brotli-python             1.1.0           py311hb755f60_1    conda-forge
brunsli                   0.1                  h9c3ff4c_0    conda-forge
bzip2                     1.0.8                hd590300_5    conda-forge
c-ares                    1.26.0               hd590300_0    conda-forge
c-blosc2                  2.13.2               hb4ffafa_0    conda-forge
ca-certificates           2024.2.2             hbcca054_0    conda-forge
cached-property           1.5.2                hd8ed1ab_1    conda-forge
cached_property           1.5.2              pyha770c72_1    conda-forge
cachetools                5.3.2              pyhd8ed1ab_0    conda-forge
certifi                   2024.2.2           pyhd8ed1ab_0    conda-forge
cffi                      1.16.0          py311hb3a22ac_0    conda-forge
charls                    2.4.2                h59595ed_0    conda-forge
charset-normalizer        3.3.2              pyhd8ed1ab_0    conda-forge
click                     8.1.7           unix_pyh707e725_0    conda-forge
contourpy                 1.2.0           py311h9547e67_0    conda-forge
cryptography              42.0.3          py311h63ff55d_0    conda-forge
cuda-crt-tools            12.3.107             ha770c72_0    conda-forge
cuda-cudart               12.3.101             hd3aeb46_0    conda-forge
cuda-cudart_linux-64      12.3.101             h59595ed_0    conda-forge
cuda-nvcc-tools           12.3.107             hd3aeb46_0    conda-forge
cuda-nvrtc                12.3.107             hd3aeb46_0    conda-forge
cuda-nvtx                 12.3.101             h59595ed_0    conda-forge
cuda-nvvm-tools           12.3.107             h59595ed_0    conda-forge
cuda-version              12.3                 h32bc705_2    conda-forge
cudnn                     8.8.0.121            h264754d_4    conda-forge
cycler                    0.12.1             pyhd8ed1ab_0    conda-forge
dav1d                     1.2.1                hd590300_0    conda-forge
eigen                     3.4.0                h00ab1b0_0    conda-forge
expat                     2.5.0                hcb278e6_1    conda-forge
fftw                      3.3.10          nompi_hc118613_108    conda-forge
flatbuffers               23.5.26              h59595ed_1    conda-forge
fonttools                 4.49.0          py311h459d7ec_0    conda-forge
freetype                  2.12.1               h267a509_2    conda-forge
frozenlist                1.4.1           py311h459d7ec_0    conda-forge
gast                      0.5.4              pyhd8ed1ab_0    conda-forge
giflib                    5.2.1                h0b41bf4_3    conda-forge
google-auth               2.28.0             pyhca7485f_0    conda-forge
google-auth-oauthlib      1.2.0              pyhd8ed1ab_0    conda-forge
google-pasta              0.2.0              pyh8c360ce_0    conda-forge
grpcio                    1.59.3          py311ha6695c7_0    conda-forge
h5py                      3.10.0          nompi_py311hebc2b07_101    conda-forge
hdf5                      1.14.3          nompi_h4f84152_100    conda-forge
icu                       73.2                 h59595ed_0    conda-forge
idna                      3.6                pyhd8ed1ab_0    conda-forge
imagecodecs               2024.1.1        py311h089f87a_0    conda-forge
imageio                   2.34.0             pyh4b66e23_0    conda-forge
importlib-metadata        7.0.1              pyha770c72_0    conda-forge
importlib_resources       6.1.1              pyhd8ed1ab_0    conda-forge
jxrlib                    1.1                  hd590300_3    conda-forge
keras                     2.15.0             pyhd8ed1ab_0    conda-forge
keyutils                  1.6.1                h166bdaf_0    conda-forge
kiwisolver                1.4.5           py311h9547e67_1    conda-forge
krb5                      1.21.2               h659d440_0    conda-forge
lazy_loader               0.3                pyhd8ed1ab_0    conda-forge
lcms2                     2.16                 hb7c19ff_0    conda-forge
ld_impl_linux-64          2.40                 h41732ed_0    conda-forge
lerc                      4.0.0                h27087fc_0    conda-forge
libabseil                 20230802.1      cxx17_h59595ed_0    conda-forge
libaec                    1.1.2                h59595ed_1    conda-forge
libavif16                 1.0.4                h1dcd450_0    conda-forge
libblas                   3.9.0           21_linux64_openblas    conda-forge
libbrotlicommon           1.1.0                hd590300_1    conda-forge
libbrotlidec              1.1.0                hd590300_1    conda-forge
libbrotlienc              1.1.0                hd590300_1    conda-forge
libcblas                  3.9.0           21_linux64_openblas    conda-forge
libcublas                 12.3.4.1             hd3aeb46_0    conda-forge
libcufft                  11.0.12.1            hd3aeb46_0    conda-forge
libcurand                 10.3.4.107           hd3aeb46_0    conda-forge
libcurl                   8.5.0                hca28451_0    conda-forge
libcusolver               11.5.4.101           hd3aeb46_0    conda-forge
libcusparse               12.2.0.103           hd3aeb46_0    conda-forge
libdeflate                1.19                 hd590300_0    conda-forge
libedit                   3.1.20191231         he28a2e2_2    conda-forge
libev                     4.33                 hd590300_2    conda-forge
libexpat                  2.5.0                hcb278e6_1    conda-forge
libffi                    3.4.2                h7f98852_5    conda-forge
libgcc-ng                 13.2.0               h807b86a_5    conda-forge
libgfortran-ng            13.2.0               h69a702a_5    conda-forge
libgfortran5              13.2.0               ha4646dd_5    conda-forge
libgomp                   13.2.0               h807b86a_5    conda-forge
libgrpc                   1.59.3               hd6c4280_0    conda-forge
libhwloc                  2.9.3           default_h554bfaf_1009    conda-forge
libiconv                  1.17                 hd590300_2    conda-forge
libitk                    5.3.0                h26001f5_8    conda-forge
libjpeg-turbo             3.0.0                hd590300_1    conda-forge
liblapack                 3.9.0           21_linux64_openblas    conda-forge
libllvm14                 14.0.6               hcd5def8_4    conda-forge
libnghttp2                1.58.0               h47da74e_1    conda-forge
libnsl                    2.0.1                hd590300_0    conda-forge
libnvjitlink              12.3.101             hd3aeb46_0    conda-forge
libopenblas               0.3.26          pthreads_h413a1c8_0    conda-forge
libpng                    1.6.42               h2797004_0    conda-forge
libprotobuf               4.24.4               hf27288f_0    conda-forge
libre2-11                 2023.06.02           h7a70373_0    conda-forge
libsqlite                 3.45.1               h2797004_0    conda-forge
libssh2                   1.11.0               h0841786_0    conda-forge
libstdcxx-ng              13.2.0               h7e041cc_5    conda-forge
libtiff                   4.6.0                ha9c0a0a_2    conda-forge
libuuid                   2.38.1               h0b41bf4_0    conda-forge
libwebp-base              1.3.2                hd590300_0    conda-forge
libxcb                    1.15                 h0b41bf4_0    conda-forge
libxcrypt                 4.4.36               hd590300_1    conda-forge
libxml2                   2.12.5               h232c23b_0    conda-forge
libzlib                   1.2.13               hd590300_5    conda-forge
libzopfli                 1.0.3                h9c3ff4c_0    conda-forge
llvmlite                  0.42.0          py311ha6695c7_1    conda-forge
lz4-c                     1.9.4                hcb278e6_0    conda-forge
markdown                  3.5.2              pyhd8ed1ab_0    conda-forge
markupsafe                2.1.5           py311h459d7ec_0    conda-forge
matplotlib-base           3.8.3           py311h54ef318_0    conda-forge
ml_dtypes                 0.2.0           py311h320fe9a_2    conda-forge
multidict                 6.0.5           py311h459d7ec_0    conda-forge
munkres                   1.1.4              pyh9f0ad1d_0    conda-forge
nccl                      2.20.3.1             h3a97aeb_0    conda-forge
ncurses                   6.4                  h59595ed_2    conda-forge
networkx                  3.2.1              pyhd8ed1ab_0    conda-forge
nibabel                   5.2.0              pyha770c72_0    conda-forge
numba                     0.59.0          py311h96b013e_1    conda-forge
numpy                     1.26.4          py311h64a7726_0    conda-forge
oauthlib                  3.2.2              pyhd8ed1ab_0    conda-forge
openjpeg                  2.5.0                h488ebb8_3    conda-forge
openssl                   3.2.1                hd590300_0    conda-forge
opt_einsum                3.3.0              pyhc1e730c_2    conda-forge
packaging                 23.2               pyhd8ed1ab_0    conda-forge
pillow                    10.2.0          py311ha6c5da5_0    conda-forge
pip                       24.0               pyhd8ed1ab_0    conda-forge
protobuf                  4.24.4          py311h46cbc50_0    conda-forge
pthread-stubs             0.4               h36c2ea0_1001    conda-forge
pyapetnet                 1.5.1              pyhd8ed1ab_0    conda-forge
pyasn1                    0.5.1              pyhd8ed1ab_0    conda-forge
pyasn1-modules            0.3.0              pyhd8ed1ab_0    conda-forge
pycparser                 2.21               pyhd8ed1ab_0    conda-forge
pydicom                   2.4.4              pyhd8ed1ab_0    conda-forge
pyjwt                     2.8.0              pyhd8ed1ab_1    conda-forge
pymirc                    0.29               pyhd8ed1ab_0    conda-forge
pyopenssl                 24.0.0             pyhd8ed1ab_0    conda-forge
pyparsing                 3.1.1              pyhd8ed1ab_0    conda-forge
pysocks                   1.7.1              pyha2e5f31_6    conda-forge
python                    3.11.8          hab00c5b_0_cpython    conda-forge
python-dateutil           2.8.2              pyhd8ed1ab_0    conda-forge
python-flatbuffers        23.5.26            pyhd8ed1ab_0    conda-forge
python_abi                3.11                    4_cp311    conda-forge
pyu2f                     0.1.5              pyhd8ed1ab_0    conda-forge
pywavelets                1.4.1           py311h1f0f07a_1    conda-forge
rav1e                     0.6.6                he8a937b_2    conda-forge
re2                       2023.06.02           h2873b5e_0    conda-forge
readline                  8.2                  h8228510_1    conda-forge
requests                  2.31.0             pyhd8ed1ab_0    conda-forge
requests-oauthlib         1.3.1              pyhd8ed1ab_0    conda-forge
rsa                       4.9                pyhd8ed1ab_0    conda-forge
scikit-image              0.22.0          py311h320fe9a_2    conda-forge
scipy                     1.12.0          py311h64a7726_2    conda-forge
setuptools                69.1.0             pyhd8ed1ab_0    conda-forge
simpleitk                 2.3.1           py311hb755f60_2    conda-forge
six                       1.16.0             pyh6c4a22f_0    conda-forge
snappy                    1.1.10               h9fff704_0    conda-forge
svt-av1                   1.8.0                h59595ed_0    conda-forge
tbb                       2021.11.0            h00ab1b0_1    conda-forge
tensorboard               2.15.2             pyhd8ed1ab_0    conda-forge
tensorboard-data-server   0.7.0           py311h63ff55d_1    conda-forge
tensorflow                2.15.0          cuda120py311h5cbd639_3    conda-forge
tensorflow-base           2.15.0          cuda120py311h43b5e44_3    conda-forge
tensorflow-estimator      2.15.0          cuda120py311hf663016_3    conda-forge
termcolor                 2.4.0              pyhd8ed1ab_0    conda-forge
tifffile                  2024.2.12          pyhd8ed1ab_0    conda-forge
tk                        8.6.13          noxft_h4845f30_101    conda-forge
typing_extensions         4.9.0              pyha770c72_0    conda-forge
tzdata                    2024a                h0c530f3_0    conda-forge
urllib3                   2.2.1              pyhd8ed1ab_0    conda-forge
werkzeug                  3.0.1              pyhd8ed1ab_0    conda-forge
wheel                     0.42.0             pyhd8ed1ab_0    conda-forge
wrapt                     1.14.1          py311hd4cff14_1    conda-forge
xorg-libxau               1.0.11               hd590300_0    conda-forge
xorg-libxdmcp             1.1.3                h7f98852_0    conda-forge
xz                        5.2.6                h166bdaf_0    conda-forge
yarl                      1.9.4           py311h459d7ec_0    conda-forge
zfp                       1.0.1                h59595ed_0    conda-forge
zipp                      3.17.0             pyhd8ed1ab_0    conda-forge
zlib                      1.2.13               hd590300_5    conda-forge
zlib-ng                   2.0.7                h0b41bf4_0    conda-forge
zstd                      1.5.5                hfc55251_0    conda-forge
—
Reply to this email directly, view it on GitHub https://github.com/gschramm/pyapetnet/issues/8#issuecomment-1952801584, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHU7WAOSM67OZLKEQPORO4LYUN3QDAVCNFSM6AAAAABDIAQ33KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNJSHAYDCNJYGQ.
You are receiving this because you authored the thread.

Hi Gyula,

your package list will never be close to mine since we are running on different OS versions and we also have
a mismatch in GPU presence. But if everything works as it should (not sure if it does) these three lines should also work for you:

conda create -c conda-forge -n pyapetnet pyapetnet
conda activate pyapetnet
pyapetnet_predict_from_nifti brainweb_06_osem.nii brainweb_06_t1.nii S2_osem_b10_fdg_pe2i --show

If this does not work for your system, can you please send me the error messages?

I am working on 1.5.2 release that fixes install bugs, but for that I need the answer to 1.

Here it is:
$ pyapetnet_predict_from_nifti brainweb_06_osem.nii brainweb_06_t1.nii S2_osem_b10_fdg_pe2i --show
2024-02-19 17:59:25.265216: I tensorflow/core/util/port.cc:113] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable TF_ENABLE_ONEDNN_OPTS=0.
2024-02-19 17:59:25.284127: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: SSE4.1 SSE4.2 AVX AVX2 AVX512F AVX512_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.
WARNING:tensorflow:SavedModel saved prior to TF 2.5 detected when loading Keras model. Please ensure that you are saving the model with model.save() or tf.keras.models.save_model(), NOT tf.saved_model.save(). To confirm, there should be a file named "keras_metadata.pb" in the SavedModel directory.
/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/layers/core/lambda_layer.py:327: UserWarning: tensorflow.python.keras.utils.multi_gpu_utils is not loaded, but a Lambda layer uses it. It may cause errors.
function = cls._parse_function_from_config(
Traceback (most recent call last):
File "/home/gkotek/anaconda3/envs/pyapetnet/bin/pyapetnet_predict_from_nifti", line 10, in
sys.exit(main())
^^^^^^
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/pyapetnet/predict_from_nifti.py", line 124, in main
pred = model.predict(x).squeeze()
^^^^^^^^^^^^^^^^
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 70, in error_handler
raise e.with_traceback(filtered_tb) from None
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/tensorflow/python/eager/execute.py", line 53, in quick_execute
tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tensorflow.python.framework.errors_impl.InvalidArgumentError: Graph execution error:
Detected at node functional_3/functional_1/batchnorm_ind_0_0/FusedBatchNormV3_1 defined at (most recent call last):
File "/home/gkotek/anaconda3/envs/pyapetnet/bin/pyapetnet_predict_from_nifti", line 10, in
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/pyapetnet/predict_from_nifti.py", line 124, in main
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 65, in error_handler
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/engine/training.py", line 2655, in predict
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/engine/training.py", line 2440, in predict_function
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/engine/training.py", line 2425, in step_function
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/engine/training.py", line 2413, in run_step
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/engine/training.py", line 2381, in predict_step
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 65, in error_handler
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/engine/training.py", line 590, in call
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 65, in error_handler
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/engine/base_layer.py", line 1149, in call
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 96, in error_handler
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/engine/functional.py", line 515, in call
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/engine/functional.py", line 672, in _run_internal_graph
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 65, in error_handler
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/engine/training.py", line 590, in call
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 65, in error_handler
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/engine/base_layer.py", line 1149, in call
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 96, in error_handler
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/engine/functional.py", line 515, in call
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/engine/functional.py", line 672, in _run_internal_graph
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 65, in error_handler
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/engine/base_layer.py", line 1149, in call
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 96, in error_handler
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/layers/normalization/batch_normalization.py", line 597, in call
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/layers/normalization/batch_normalization.py", line 990, in _fused_batch_norm
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/utils/control_flow_util.py", line 108, in smart_cond
File "/home/gkotek/anaconda3/envs/pyapetnet/lib/python3.11/site-packages/keras/src/layers/normalization/batch_normalization.py", line 979, in _fused_batch_norm_inference
scale must have the same number of elements as the channels of x, got 15 and 1
[[{{node functional_3/functional_1/batchnorm_ind_0_0/FusedBatchNormV3_1}}]] [Op:__inference_predict_function_14236]

Hi,
yesterday night, I released v1.5.2 on conda-forge which is supposed to fix all dependency issues. Note that there is no pypi version more.
The new build also include automatic tests of predictions on the latest ubuntu versions (which all passed).
I also tested on a local Ubuntu 22.04 machine without GPU.
Can you please try the three liner below in a fresh conda env?
(should install pyapetnet v1.5.2 and all dependencies)
conda create -c conda-forge -n pyapetnet-152 pyapetnet
conda activate pyapetnet-152
pyapetnet_predict_from_nifti brainweb_06_osem.nii brainweb_06_t1.nii S2_osem_b10_fdg_pe2i --show

I hardly dare after all this to post the error message - but here it is:
$ pyapetnet_predict_from_nifti brainweb_06_osem.nii brainweb_06_t1.nii S2_osem_b10_fdg_pe2i --show
Traceback (most recent call last):
File "/home/gkotek/.local/bin/pyapetnet_predict_from_nifti", line 8, in
sys.exit(main())
File "/home/gkotek/.local/lib/python3.10/site-packages/pyapetnet/predict_from_nifti.py", line 49, in main
from pyapetnet.utils import load_nii_in_ras
File "/home/gkotek/.local/lib/python3.10/site-packages/pyapetnet/utils.py", line 5, in
from pymirc.fileio import write_3d_static_dicom
File "/home/gkotek/.local/lib/python3.10/site-packages/pymirc/init.py", line 1, in
from . import fileio
File "/home/gkotek/.local/lib/python3.10/site-packages/pymirc/fileio/init.py", line 5, in
from .labelvol_to_rtstruct import labelvol_to_rtstruct
File "/home/gkotek/.local/lib/python3.10/site-packages/pymirc/fileio/labelvol_to_rtstruct.py", line 1, in
import pymirc.image_operations as pymi
File "/home/gkotek/.local/lib/python3.10/site-packages/pymirc/image_operations/init.py", line 6, in
from .binary_2d_image_to_contours import binary_2d_image_to_contours
File "/home/gkotek/.local/lib/python3.10/site-packages/pymirc/image_operations/binary_2d_image_to_contours.py", line 6, in
from skimage import measure
File "/home/gkotek/.local/lib/python3.10/site-packages/skimage/init.py", line 122, in
from ._shared import geometry
File "geometry.pyx", line 1, in init skimage._shared.geometry
ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject

My Python version is: Python 3.11.8

To add more info, here is the output from conda list:
$ conda list
packages in environment at /home/gkotek/miniconda3/envs/pyapetnet-152:

Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       2_gnu    conda-forge
absl-py                   2.1.0              pyhd8ed1ab_0    conda-forge
aiohttp                   3.9.3           py311h459d7ec_0    conda-forge
aiosignal                 1.3.1              pyhd8ed1ab_0    conda-forge
aom                       3.8.1                h59595ed_0    conda-forge
astunparse                1.6.3              pyhd8ed1ab_0    conda-forge
attrs                     23.2.0             pyh71513ae_0    conda-forge
blinker                   1.7.0              pyhd8ed1ab_0    conda-forge
blosc                     1.21.5               h0f2a231_0    conda-forge
brotli                    1.1.0                hd590300_1    conda-forge
brotli-bin                1.1.0                hd590300_1    conda-forge
brotli-python             1.1.0           py311hb755f60_1    conda-forge
brunsli                   0.1                  h9c3ff4c_0    conda-forge
bzip2                     1.0.8                hd590300_5    conda-forge
c-ares                    1.26.0               hd590300_0    conda-forge
c-blosc2                  2.13.2               hb4ffafa_0    conda-forge
ca-certificates           2024.2.2             hbcca054_0    conda-forge
cached-property           1.5.2                hd8ed1ab_1    conda-forge
cached_property           1.5.2              pyha770c72_1    conda-forge
cachetools                5.3.2              pyhd8ed1ab_0    conda-forge
certifi                   2024.2.2           pyhd8ed1ab_0    conda-forge
cffi                      1.16.0          py311hb3a22ac_0    conda-forge
charls                    2.4.2                h59595ed_0    conda-forge
charset-normalizer        3.3.2              pyhd8ed1ab_0    conda-forge
click                     8.1.7           unix_pyh707e725_0    conda-forge
contourpy                 1.2.0           py311h9547e67_0    conda-forge
cryptography              42.0.3          py311h63ff55d_0    conda-forge
cycler                    0.12.1             pyhd8ed1ab_0    conda-forge
dav1d                     1.2.1                hd590300_0    conda-forge
eigen                     3.4.0                h00ab1b0_0    conda-forge
expat                     2.5.0                hcb278e6_1    conda-forge
fftw                      3.3.10          nompi_hc118613_108    conda-forge
flatbuffers               23.5.26              h59595ed_1    conda-forge
fonttools                 4.49.0          py311h459d7ec_0    conda-forge
freetype                  2.12.1               h267a509_2    conda-forge
frozenlist                1.4.1           py311h459d7ec_0    conda-forge
gast                      0.5.4              pyhd8ed1ab_0    conda-forge
giflib                    5.2.1                h0b41bf4_3    conda-forge
google-auth               2.28.0             pyhca7485f_0    conda-forge
google-auth-oauthlib      1.2.0              pyhd8ed1ab_0    conda-forge
google-pasta              0.2.0              pyh8c360ce_0    conda-forge
grpcio                    1.59.3          py311ha6695c7_0    conda-forge
h5py                      3.10.0          nompi_py311hebc2b07_101    conda-forge
hdf5                      1.14.3          nompi_h4f84152_100    conda-forge
icu                       73.2                 h59595ed_0    conda-forge
idna                      3.6                pyhd8ed1ab_0    conda-forge
imagecodecs               2024.1.1        py311h089f87a_0    conda-forge
imageio                   2.34.0             pyh4b66e23_0    conda-forge
importlib-metadata        7.0.1              pyha770c72_0    conda-forge
importlib_resources       6.1.1              pyhd8ed1ab_0    conda-forge
jxrlib                    1.1                  hd590300_3    conda-forge
keras                     2.15.0             pyhd8ed1ab_0    conda-forge
keyutils                  1.6.1                h166bdaf_0    conda-forge
kiwisolver                1.4.5           py311h9547e67_1    conda-forge
krb5                      1.21.2               h659d440_0    conda-forge
lazy_loader               0.3                pyhd8ed1ab_0    conda-forge
lcms2                     2.16                 hb7c19ff_0    conda-forge
ld_impl_linux-64          2.40                 h41732ed_0    conda-forge
lerc                      4.0.0                h27087fc_0    conda-forge
libabseil                 20230802.1      cxx17_h59595ed_0    conda-forge
libaec                    1.1.2                h59595ed_1    conda-forge
libavif16                 1.0.4                h1dcd450_0    conda-forge
libblas                   3.9.0           21_linux64_openblas    conda-forge
libbrotlicommon           1.1.0                hd590300_1    conda-forge
libbrotlidec              1.1.0                hd590300_1    conda-forge
libbrotlienc              1.1.0                hd590300_1    conda-forge
libcblas                  3.9.0           21_linux64_openblas    conda-forge
libcurl                   8.5.0                hca28451_0    conda-forge
libdeflate                1.19                 hd590300_0    conda-forge
libedit                   3.1.20191231         he28a2e2_2    conda-forge
libev                     4.33                 hd590300_2    conda-forge
libexpat                  2.5.0                hcb278e6_1    conda-forge
libffi                    3.4.2                h7f98852_5    conda-forge
libgcc-ng                 13.2.0               h807b86a_5    conda-forge
libgfortran-ng            13.2.0               h69a702a_5    conda-forge
libgfortran5              13.2.0               ha4646dd_5    conda-forge
libgomp                   13.2.0               h807b86a_5    conda-forge
libgrpc                   1.59.3               hd6c4280_0    conda-forge
libhwloc                  2.9.3           default_h554bfaf_1009    conda-forge
libiconv                  1.17                 hd590300_2    conda-forge
libitk                    5.3.0                h26001f5_8    conda-forge
libjpeg-turbo             3.0.0                hd590300_1    conda-forge
liblapack                 3.9.0           21_linux64_openblas    conda-forge
libllvm14                 14.0.6               hcd5def8_4    conda-forge
libnghttp2                1.58.0               h47da74e_1    conda-forge
libnsl                    2.0.1                hd590300_0    conda-forge
libopenblas               0.3.26          pthreads_h413a1c8_0    conda-forge
libpng                    1.6.42               h2797004_0    conda-forge
libprotobuf               4.24.4               hf27288f_0    conda-forge
libre2-11                 2023.06.02           h7a70373_0    conda-forge
libsqlite                 3.45.1               h2797004_0    conda-forge
libssh2                   1.11.0               h0841786_0    conda-forge
libstdcxx-ng              13.2.0               h7e041cc_5    conda-forge
libtiff                   4.6.0                ha9c0a0a_2    conda-forge
libuuid                   2.38.1               h0b41bf4_0    conda-forge
libwebp-base              1.3.2                hd590300_0    conda-forge
libxcb                    1.15                 h0b41bf4_0    conda-forge
libxcrypt                 4.4.36               hd590300_1    conda-forge
libxml2                   2.12.5               h232c23b_0    conda-forge
libzlib                   1.2.13               hd590300_5    conda-forge
libzopfli                 1.0.3                h9c3ff4c_0    conda-forge
llvmlite                  0.42.0          py311ha6695c7_1    conda-forge
lz4-c                     1.9.4                hcb278e6_0    conda-forge
markdown                  3.5.2              pyhd8ed1ab_0    conda-forge
markupsafe                2.1.5           py311h459d7ec_0    conda-forge
matplotlib-base           3.8.3           py311h54ef318_0    conda-forge
ml_dtypes                 0.2.0           py311h320fe9a_2    conda-forge
multidict                 6.0.5           py311h459d7ec_0    conda-forge
munkres                   1.1.4              pyh9f0ad1d_0    conda-forge
ncurses                   6.4                  h59595ed_2    conda-forge
networkx                  3.2.1              pyhd8ed1ab_0    conda-forge
nibabel                   5.2.0              pyha770c72_0    conda-forge
numba                     0.59.0          py311h96b013e_1    conda-forge
numpy                     1.26.4          py311h64a7726_0    conda-forge
oauthlib                  3.2.2              pyhd8ed1ab_0    conda-forge
openjpeg                  2.5.0                h488ebb8_3    conda-forge
openssl                   3.2.1                hd590300_0    conda-forge
opt_einsum                3.3.0              pyhc1e730c_2    conda-forge
packaging                 23.2               pyhd8ed1ab_0    conda-forge
pillow                    10.2.0          py311ha6c5da5_0    conda-forge
pip                       24.0               pyhd8ed1ab_0    conda-forge
protobuf                  4.24.4          py311h46cbc50_0    conda-forge
pthread-stubs             0.4               h36c2ea0_1001    conda-forge
pyapetnet                 1.5.2              pyhd8ed1ab_0    conda-forge
pyasn1                    0.5.1              pyhd8ed1ab_0    conda-forge
pyasn1-modules            0.3.0              pyhd8ed1ab_0    conda-forge
pycparser                 2.21               pyhd8ed1ab_0    conda-forge
pydicom                   2.4.4              pyhd8ed1ab_0    conda-forge
pyjwt                     2.8.0              pyhd8ed1ab_1    conda-forge
pymirc                    0.29               pyhd8ed1ab_0    conda-forge
pyopenssl                 24.0.0             pyhd8ed1ab_0    conda-forge
pyparsing                 3.1.1              pyhd8ed1ab_0    conda-forge
pysocks                   1.7.1              pyha2e5f31_6    conda-forge
python                    3.11.8          hab00c5b_0_cpython    conda-forge
python-dateutil           2.8.2              pyhd8ed1ab_0    conda-forge
python-flatbuffers        23.5.26            pyhd8ed1ab_0    conda-forge
python_abi                3.11                    4_cp311    conda-forge
pyu2f                     0.1.5              pyhd8ed1ab_0    conda-forge
pywavelets                1.4.1           py311h1f0f07a_1    conda-forge
rav1e                     0.6.6                he8a937b_2    conda-forge
re2                       2023.06.02           h2873b5e_0    conda-forge
readline                  8.2                  h8228510_1    conda-forge
requests                  2.31.0             pyhd8ed1ab_0    conda-forge
requests-oauthlib         1.3.1              pyhd8ed1ab_0    conda-forge
rsa                       4.9                pyhd8ed1ab_0    conda-forge
scikit-image              0.22.0          py311h320fe9a_2    conda-forge
scipy                     1.12.0          py311h64a7726_2    conda-forge
setuptools                69.1.0             pyhd8ed1ab_1    conda-forge
simpleitk                 2.3.1           py311hb755f60_2    conda-forge
six                       1.16.0             pyh6c4a22f_0    conda-forge
snappy                    1.1.10               h9fff704_0    conda-forge
svt-av1                   1.8.0                h59595ed_0    conda-forge
tbb                       2021.11.0            h00ab1b0_1    conda-forge
tensorboard               2.15.2             pyhd8ed1ab_0    conda-forge
tensorboard-data-server   0.7.0           py311h63ff55d_1    conda-forge
tensorflow                2.15.0          cpu_py311hd3d7757_2    conda-forge
tensorflow-base           2.15.0          cpu_py311h6aa969b_2    conda-forge
tensorflow-estimator      2.15.0          cpu_py311ha26c8b9_2    conda-forge
termcolor                 2.4.0              pyhd8ed1ab_0    conda-forge
tifffile                  2024.2.12          pyhd8ed1ab_0    conda-forge
tk                        8.6.13          noxft_h4845f30_101    conda-forge
typing_extensions         4.9.0              pyha770c72_0    conda-forge
tzdata                    2024a                h0c530f3_0    conda-forge
urllib3                   2.2.1              pyhd8ed1ab_0    conda-forge
werkzeug                  3.0.1              pyhd8ed1ab_0    conda-forge
wheel                     0.42.0             pyhd8ed1ab_0    conda-forge
wrapt                     1.14.1          py311hd4cff14_1    conda-forge
xorg-libxau               1.0.11               hd590300_0    conda-forge
xorg-libxdmcp             1.1.3                h7f98852_0    conda-forge
xz                        5.2.6                h166bdaf_0    conda-forge
yarl                      1.9.4           py311h459d7ec_0    conda-forge
zfp                       1.0.1                h59595ed_0    conda-forge
zipp                      3.17.0             pyhd8ed1ab_0    conda-forge
zlib                      1.2.13               hd590300_5    conda-forge
zlib-ng                   2.0.7                h0b41bf4_0    conda-forge
zstd                      1.5.5                hfc55251_0    conda-forge

Sorry to hear that (please always dare to report bugs / unexpected behavior ...)

Two things that immediately jumps to my eyes:
/home/gkotek/.local/lib/python3.10/site-packages/skimage/init.py
seems to indicate you should be using python 3.10, but you says 3.11.8
/home/gkotek/.local/lib is a very "uncoventional" place for storing mamba python envs.
Your posted package list also says: /home/gkotek/miniconda3/envs/pyapetnet-152
When running things in the pyapetnet-152 env, no libs of /home/gkotek/.local should be used

So I think that your are mixing different python envs (maybe some from mamba, some from pip ...).
To debug this, I suggets:

check you PYTHONPATH environment variable (this should be empty, but it could contain things that link to /home/gkotek/.local which it should not). If it is not empty, clear it.
if 1, did not work, uninstall miniforge / conda (make sure to remove mamba/conda related things from your .bashrc)
re-install miniforge from here
initialize miniforge and re-check your .bashrc, and check that PYTHONPATH is empty

OK, thanks, it was indeed a mess...so followed your comments:

1st option did not work (could not get rid of undesired paths in sys.path),
had to follow uninstallation, reinstallation miniforge
also did:
conda create -c conda-forge -n pyapetnet-152 pyapetnet
conda activate pyapetnet-152

echo $PYTHONPATH is empty - nothing comes in from .bashrc

checking sys.path - looks OK to me:
$ python
Python 3.11.8 | packaged by conda-forge | (main, Feb 16 2024, 20:53:32) [GCC 12.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.

import sys
sys.path
['', '/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python311.zip', '/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11', '/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/lib-dynload', '/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages']

running estimation gives an error (same old) - but uses the right packages I believe:
$ pyapetnet_predict_from_nifti brainweb_06_osem.nii brainweb_06_t1.nii S2_osem_b10_fdg_pe2i --show
2024-02-20 17:18:35.545212: I tensorflow/core/util/port.cc:113] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable TF_ENABLE_ONEDNN_OPTS=0.
2024-02-20 17:18:35.564247: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: SSE4.1 SSE4.2 AVX AVX2 AVX512F AVX512_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.
WARNING:tensorflow:SavedModel saved prior to TF 2.5 detected when loading Keras model. Please ensure that you are saving the model with model.save() or tf.keras.models.save_model(), NOT tf.saved_model.save(). To confirm, there should be a file named "keras_metadata.pb" in the SavedModel directory.
/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/layers/core/lambda_layer.py:327: UserWarning: tensorflow.python.keras.utils.multi_gpu_utils is not loaded, but a Lambda layer uses it. It may cause errors.
function = cls._parse_function_from_config(
Traceback (most recent call last):
File "/home/gkotek/miniforge3/envs/pyapetnet-152/bin/pyapetnet_predict_from_nifti", line 10, in
sys.exit(main())
^^^^^^
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/pyapetnet/predict_from_nifti.py", line 130, in main
pred = model.predict(x).squeeze()
^^^^^^^^^^^^^^^^
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 70, in error_handler
raise e.with_traceback(filtered_tb) from None
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/tensorflow/python/eager/execute.py", line 53, in quick_execute
tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tensorflow.python.framework.errors_impl.InvalidArgumentError: Graph execution error:

Detected at node functional_3/functional_1/batchnorm_ind_0_0/FusedBatchNormV3_1 defined at (most recent call last):
File "/home/gkotek/miniforge3/envs/pyapetnet-152/bin/pyapetnet_predict_from_nifti", line 10, in
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/pyapetnet/predict_from_nifti.py", line 130, in main
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 65, in error_handler
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/engine/training.py", line 2655, in predict
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/engine/training.py", line 2440, in predict_function
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/engine/training.py", line 2425, in step_function
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/engine/training.py", line 2413, in run_step
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/engine/training.py", line 2381, in predict_step
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 65, in error_handler
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/engine/training.py", line 590, in call
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 65, in error_handler
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/engine/base_layer.py", line 1149, in call
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 96, in error_handler
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/engine/functional.py", line 515, in call
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/engine/functional.py", line 672, in _run_internal_graph
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 65, in error_handler
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/engine/training.py", line 590, in call
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 65, in error_handler
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/engine/base_layer.py", line 1149, in call
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 96, in error_handler
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/engine/functional.py", line 515, in call
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/engine/functional.py", line 672, in _run_internal_graph
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 65, in error_handler
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/engine/base_layer.py", line 1149, in call
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py", line 96, in error_handler
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/layers/normalization/batch_normalization.py", line 597, in call
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/layers/normalization/batch_normalization.py", line 990, in _fused_batch_norm
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/utils/control_flow_util.py", line 108, in smart_cond
File "/home/gkotek/miniforge3/envs/pyapetnet-152/lib/python3.11/site-packages/keras/src/layers/normalization/batch_normalization.py", line 979, in _fused_batch_norm_inference
scale must have the same number of elements as the channels of x, got 15 and 1
[[{{node functional_3/functional_1/batchnorm_ind_0_0/FusedBatchNormV3_1}}]] [Op:__inference_predict_function_14236]

at least we are back to the initial error :)
what I don't understand: I am able to run it on:

my laptop with ubuntu 22.04 - no GPU
two cloud runners using ubuntu 22.04 - no GPU
my M1 MacBook - no GPU

so I am getting lost here ...
what kind of CPUs are you using?

Indeed :)
It is maddening...especially with all the caution of using virtual environment...
(I will also try on my Mac and on a RHEL later ... after my return from holiday.)
But for now on the CPU question:
$ lscpu
Architecture:            x86_64
CPU op-mode(s):        32-bit, 64-bit
Address sizes:         39 bits physical, 48 bits virtual
Byte Order:            Little Endian
CPU(s):                  16
On-line CPU(s) list:   0-15
Vendor ID:               GenuineIntel
Model name:            11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz
CPU family:          6
Model:               167
Thread(s) per core:  2
Core(s) per socket:  8
Socket(s):           1
Stepping:            1
CPU max MHz:         4900,0000
CPU min MHz:         800,0000
BogoMIPS:            4992.00
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm c
onstant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx
est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cp
uid_fault epb invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 e
rms invpcid mpx avx512f avx512dq rdseed adx smap avx512ifma clflushopt intel_pt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves dther
m ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bi
talg avx512_vpopcntdq rdpid fsrm md_clear flush_l1d arch_capabilities
Virtualization features:
Virtualization:        VT-x
Caches (sum of all):
L1d:                   384 KiB (8 instances)
L1i:                   256 KiB (8 instances)
L2:                    4 MiB (8 instances)
L3:                    16 MiB (1 instance)
NUMA:
NUMA node(s):          1
NUMA node0 CPU(s):     0-15
Vulnerabilities:
Gather data sampling:  Mitigation; Microcode
Itlb multihit:         Not affected
L1tf:                  Not affected
Mds:                   Not affected
Meltdown:              Not affected
Mmio stale data:       Mitigation; Clear CPU buffers; SMT vulnerable
Retbleed:              Mitigation; Enhanced IBRS
Spec rstack overflow:  Not affected
Spec store bypass:     Mitigation; Speculative Store Bypass disabled via prctl
Spectre v1:            Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Spectre v2:            Mitigation; Enhanced IBRS, IBPB conditional, RSB filling, PBRSB-eIBRS SW sequence
Srbds:                 Not affected
Tsx async abort:       Not affected

One last thing to try on this system:

locate where the pre-trained models are stored in your env by running
pyapetnet_list_models
unzip the attached zipped "test_model" in this directory
test_model.zip
re-run pyapet_list_models to see if it recognized your new test_model
re-run the prediction test with the new test model (which is an old model, but re-saved in tf v2.15)
pyapetnet_predict_from_nifti brainweb_06_osem.nii brainweb_06_t1.nii test_model --show

Hi Georg,
Hi Georg,
Thanks for the support so far. I need to take a break, need to get on the road.
When I am back I will clean up my Ubuntu and go from scratch again. I will report back next week.

Gyula

PS:
It seems that my python environment is really messed up now. ~/.local pops up again...
See:
$ pyapetnet_list_models
Traceback (most recent call last):
File "/home/gkotek/.local/bin/pyapetnet_list_models", line 5, in
from pyapetnet.list_models import main
ModuleNotFoundError: No module named 'pyapetnet'

Hi Georg,
Success with nifti:
I successfully installed and run test with nifti demo data on a different machine (RHEL 8)
The steps I followed:
install miniforge3 from 'https://github.com/conda-forge/miniforge?tab=readme-ov-file'
$ conda create -c conda-forge -n pyapetnet-152 pyapetnet
$ conda activate pyapetnet-152
$ pyapetnet_predict_from_nifti brainweb_06_osem.nii brainweb_06_t1.nii S2_osem_b10_fdg_pe2i --show
Trouble with dicom:
$ pyapetnet_predict_from_dicom brainweb_06_osem_dcm brainweb_06_t1_dcm S2_osem_b10_fdg_pe2i --show
2024-03-07 12:18:25.747898: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: SSE4.1 SSE4.2 AVX AVX2 AVX512F FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.
Traceback (most recent call last):
File "/home/r471670/miniforge3/envs/pyapetnet-152/bin/pyapetnet_predict_from_dicom", line 10, in
sys.exit(predict_from_dicom())
File "/home/r471670/miniforge3/envs/pyapetnet-152/lib/python3.10/site-packages/click/core.py", line 1157, in call
return self.main(*args, **kwargs)
File "/home/r471670/miniforge3/envs/pyapetnet-152/lib/python3.10/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
File "/home/r471670/miniforge3/envs/pyapetnet-152/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/r471670/miniforge3/envs/pyapetnet-152/lib/python3.10/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
File "/home/r471670/miniforge3/envs/pyapetnet-152/lib/python3.10/site-packages/pyapetnet/scripts/predict_from_dicom.py", line 97, in predict_from_dicom
series_description_suffix = f"__m{model_name}_v{pyapetnet.version}"
AttributeError: module 'pyapetnet' has no attribute 'version'
the version I use:
$ conda list | grep pyapetnet
pyapetnet                 1.5.3              pyhd8ed1ab_0    conda-forge

Gyula

Glad to hear that the nifti prediction works. "version" was indeed removed in 1.5.3 which resulted in this bug. I will try to fix this asap and release v1.5.4

Thanks!
I have a student starting in a few weeks. Hopefully all will work fine. We have 25+ glioma patients' data and more will be secured soon (ethical approval, data is there). Will you let me know on this issue page if the new version is available?
Thanks for the support!
After all the problems were caused by my physical Ubuntu machine's setup...I migrated to RHEL for now.
Gyula

v1.5.4 is available on conda-forge and pypi.
pyapetnet.version is now availalbe again.
Note that currently with the conda-forge version the returned value is not correct,
but that should not matter.
Can you try again?

Yes, everything works as expected with the demo data!
It works both with nifti and dice.
Thanks for the last update ... and ongoing support.
Gyula

authors: gkotek gschramm

repo: gschramm/pyapetnet