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)))