diff --git a/README.md b/README.md
index 87fd3ed..4ce9d5a 100644
--- a/README.md
+++ b/README.md
@@ -44,25 +44,20 @@ information (protein ID) as a label to learn the localization patterns of protei
Recommended: create a new environment and install cytoself on the environment from pypi
(Optional) To run cytoself on GPUs, it is recommended to install pytorch GPU version before installing cytoself
-following the [official instruction](https://pytorch.org/get-started/locally/).
+following the [official instruction](https://pytorch.org/get-started/locally/). The way to install pytorch GPU may vary upon your OS and CUDA version.
```shell script
conda create -y -n cytoself python=3.9
conda activate cytoself
# (Optional: Install pytorch GPU following the official instruction)
-pip install cytoself
-```
-
-### (For the developers) Install from this repository
-Make sure you are in the root directory of the repository.
-
-```bash
pip install -e .
```
+### (For the developers) Install from this repository
Install development dependencies
```bash
pip install -r requirements/development.txt
+pre-commit install
```
@@ -184,9 +179,10 @@ fig.show()
## Tested Environments
-Rocky Linux 8.6, NVIDIA A100, CUDA 11.7 (GPU)
+Rocky Linux 8.6, NVIDIA A100, CUDA 11.7 (GPU)
+Ubuntu 20.04.3 LTS, NVIDIA 3090, CUDA 11.4 (GPU)
+Ubuntu 22.04.3 LTS, NVIDIA 4090, CUDA 12.2 (GPU)
-Ubuntu 20.04.3 LTS, NVIDIA 3090, CUDA 11.4 (GPU)
## Data Availability
The full data used in this work can be found here.
diff --git a/cytoself/trainer/autoencoder/decoders/resnet2d.py b/cytoself/trainer/autoencoder/decoders/resnet2d.py
index 91faef7..62d6aa5 100644
--- a/cytoself/trainer/autoencoder/decoders/resnet2d.py
+++ b/cytoself/trainer/autoencoder/decoders/resnet2d.py
@@ -87,7 +87,7 @@ def __init__(
for i in range(num_blocks):
if use_upsampling:
- target_shape = tuple(np.ceil(output_shape[1:] / (2 ** (num_blocks - (i + 1)))).astype(int))
+ target_shape = tuple(np.ceil(output_shape[1:] / (2 ** (num_blocks - (i + 1)))).astype(int).tolist())
self.decoder[f'up{i + 1}'] = nn.Upsample(size=target_shape, mode=sampling_mode, align_corners=False)
self.decoder[f'resrep{i+1}'] = ResidualBlockRepeat(
diff --git a/cytoself/trainer/basetrainer.py b/cytoself/trainer/basetrainer.py
index c9e1009..d6fbc0f 100644
--- a/cytoself/trainer/basetrainer.py
+++ b/cytoself/trainer/basetrainer.py
@@ -442,6 +442,7 @@ def fit(
self.best_model = deepcopy(self.model)
# Save the best model checkpoint
self.save_checkpoint()
+ count_early_stop = 0
else:
count_lr_no_improve += 1
count_early_stop += 1