Python 数据集的结构:包含目标和不包含目标的差异

Python 数据集的结构:包含目标和不包含目标的差异,python,tensorflow,machine-learning,keras,deep-learning,Python,Tensorflow,Machine Learning,Keras,Deep Learning,我正在尝试使用tensorflow.keras来拟合模型。我是keras的新手,我的问题指向Model()的.fit()方法(请参阅) 一般任务: 我想使用相关的CNN(固定参数) 添加更多层 使用进一步图层的输出作为特征,以获得进一步的分类方法 我想做一个迁移学习模型,并遵循:。但是,在本教程中,它们有一个特定的目标(请参阅下面提供的代码的输出)。在我的情况下,我没有任何目标,因此不能在model.fit(x=data)中包含带有目标的附加维度。使用没有目标的数据会导致以下错误: Val

我正在尝试使用
tensorflow.keras
来拟合模型。我是keras的新手,我的问题指向
Model()
.fit()
方法(请参阅)

一般任务:

  • 我想使用相关的CNN(固定参数)
  • 添加更多层
  • 使用进一步图层的输出作为特征,以获得进一步的分类方法

我想做一个迁移学习模型,并遵循:。但是,在本教程中,它们有一个特定的目标(请参阅下面提供的代码的输出)。在我的情况下,我没有任何目标,因此不能在
model.fit(x=data)
中包含带有目标的附加维度。使用没有目标的数据会导致以下错误:
ValueError:没有为任何变量提供渐变:['densite/kernel:0','densite/bias:0'.
如果我使用没有目标的标准数据,但为y=1添加了
(model.fit(x=data,y=1)
,我会得到以下错误:
ValueError:“在使用数据集作为输入时不支持y”参数。

但是,如果我只是扩展数据的维度,通过向其中添加任意数字,它运行得非常好。因此,我的问题是:在我只对嵌入感兴趣的情况下,扩展dim和添加目标是否会改变什么

我的初始数据集看起来像

(3因为每次观察有3张照片) 因此,数据不包括目标,因为没有具体的目标。训练是通过3张图片的相似性来完成的

本教程的数据集如下所示:

<BatchDataset shapes: ((None, 160, 160, 3), (None,)), types: (tf.float32, tf.int32)>

fit
方法背后的主要思想是进行监督学习。如果你想执行无监督学习,你可以,或者。
如果我只是扩展数据的维度,通过向其中添加任意数字,它运行得非常好。
你能添加关于该部分的详细信息(比如代码示例)吗?
import os
import tensorflow as tf
from tensorflow.keras.preprocessing import image_dataset_from_directory


# Data loading - preprocessing
# ------------------------------------------------------------------------------------------
_URL = 'https://storage.googleapis.com/mledu-datasets/cats_and_dogs_filtered.zip'
path_to_zip = tf.keras.utils.get_file('cats_and_dogs.zip', origin=_URL, extract=True)
PATH = os.path.join(os.path.dirname(path_to_zip), 'cats_and_dogs_filtered')

train_dir = os.path.join(PATH, 'train')
validation_dir = os.path.join(PATH, 'validation')

BATCH_SIZE = 32
IMG_SIZE = (160, 160)

train_dataset = image_dataset_from_directory(train_dir,
                                             shuffle=True,
                                             batch_size=BATCH_SIZE,
                                             image_size=IMG_SIZE)

validation_dataset = image_dataset_from_directory(validation_dir,
                                                  shuffle=True,
                                                  batch_size=BATCH_SIZE,
                                                  image_size=IMG_SIZE)

# Printing one Batch. the data includes the labels. 
# ------------------------------------------------------------------------------------------
print(train_dataset)
# Uncomment to see in
# print(next(iter(train_dataset)))