首页 > 解决方案 > 无法使用 Tensorflow 加载多通道 TIFF 文件

问题描述

我正在从事一个涉及多图像 TIFF 文件的图像分类项目。我的当前目录设置如下:

data
|
|__class1
|  |
|  |__ file1.tiff
|  |__ file2.tiff
|
|__class2
   |
   |__ file3.tiff
    ...

每个 TIFF 代表一个多通道显微图像(3 个通道),因此我想将它们全部用于学习。

我为PNG文件尝试了以下代码,并取得了一些成功:

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import preprocessing

keras.backend.clear_session()

image_size = (1280, 1024)
batch_size = 2

# Import images as a dataset
training = tf.keras.preprocessing.image_dataset_from_directory(
    "./data/",
    validation_split=0.1,
    color_mode = 'grayscale',
    subset="training",
    label_mode='int',
    seed=1337,
    image_size=image_size,
    batch_size=batch_size,
)

我收到以下错误:

Traceback (most recent call last):
  File "/home/E627046/miniconda3/envs/cellimaging/lib/python3.8/site-packages/te                                                                             nsorflow/python/framework/op_def_library.py", line 517, in _apply_op_helper
    values = ops.convert_to_tensor(
  File "/home/E627046/miniconda3/envs/cellimaging/lib/python3.8/site-packages/te                                                                             nsorflow/python/profiler/trace.py", line 163, in wrapped
    return func(*args, **kwargs)
  File "/home/E627046/miniconda3/envs/cellimaging/lib/python3.8/site-packages/te                                                                             nsorflow/python/framework/ops.py", line 1507, in convert_to_tensor
    raise ValueError(
ValueError: Tensor conversion requested dtype string for Tensor with dtype float                                                                             32: <tf.Tensor 'args_0:0' shape=() dtype=float32>

对于将这些 TIFF 文件加载到 python 中以启动分类管道的最佳解决方案,我更加困惑。我争论过是否将这些 TIFF 文件转换为 PNG 文件,但我不确定这是否可行,因为这些 TIFF 文件是多图像的,我很确定 PNG 不支持。我真的很想保留维度。如果对如何解决这个“TIFF 堆栈”问题有任何建议,请告诉我。

标签: pythontensorflowkeraspngtiff

解决方案


推荐阅读