- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用预训练的 resnet 并使用三元组损失对其进行微调。我想出的以下代码是我在该主题上找到的教程的组合:
import pathlib
import tensorflow as tf
import tensorflow_addons as tfa
with tf.device('/cpu:0'):
INPUT_SHAPE = (32, 32, 3)
BATCH_SIZE = 16
data_dir = pathlib.Path('/home/user/dataset/')
base_model = tf.keras.applications.ResNet50V2(
weights='imagenet',
pooling='avg',
include_top=False,
input_shape=INPUT_SHAPE,
)
# following two lines are added after edit, originally it was model = base_model
head_model = tf.keras.layers.Lambda(lambda x: tf.math.l2_normalize(x, axis=1))(base_model.output)
model = tf.keras.Model(inputs=base_model.input, outputs=head_model)
datagen = tf.keras.preprocessing.image.ImageDataGenerator(
rotation_range=10,
zoom_range=0.1,
)
generator = datagen.flow_from_directory(
data_dir,
target_size=INPUT_SHAPE[:2],
batch_size=BATCH_SIZE,
seed=42,
)
model.compile(
optimizer=tf.keras.optimizers.Adam(0.001),
loss=tfa.losses.TripletSemiHardLoss(),
)
model.fit(
generator,
epochs=5,
)
不幸的是,运行代码后出现以下错误:
Found 4857 images belonging to 83 classes.
Epoch 1/5
Traceback (most recent call last):
File "ReID/external_process.py", line 35, in <module>
model.fit(
File "/home/user/videolytics/venv_python/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py", line 108, in _method_wrapper
return method(self, *args, **kwargs)
File "/home/user/videolytics/venv_python/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py", line 1098, in fit
tmp_logs = train_function(iterator)
File "/home/user/videolytics/venv_python/lib/python3.8/site-packages/tensorflow/python/eager/def_function.py", line 780, in __call__
result = self._call(*args, **kwds)
File "/home/user/videolytics/venv_python/lib/python3.8/site-packages/tensorflow/python/eager/def_function.py", line 840, in _call
return self._stateless_fn(*args, **kwds)
File "/home/user/videolytics/venv_python/lib/python3.8/site-packages/tensorflow/python/eager/function.py", line 2829, in __call__
return graph_function._filtered_call(args, kwargs) # pylint: disable=protected-access
File "/home/user/videolytics/venv_python/lib/python3.8/site-packages/tensorflow/python/eager/function.py", line 1843, in _filtered_call
return self._call_flat(
File "/home/user/videolytics/venv_python/lib/python3.8/site-packages/tensorflow/python/eager/function.py", line 1923, in _call_flat
return self._build_call_outputs(self._inference_function.call(
File "/home/user/videolytics/venv_python/lib/python3.8/site-packages/tensorflow/python/eager/function.py", line 545, in call
outputs = execute.execute(
File "/home/user/videolytics/venv_python/lib/python3.8/site-packages/tensorflow/python/eager/execute.py", line 59, in quick_execute
tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
tensorflow.python.framework.errors_impl.InvalidArgumentError: Input to reshape is a tensor with 1328 values, but the requested shape has 16
[[{{node TripletSemiHardLoss/PartitionedCall/Reshape}}]] [Op:__inference_train_function_13749]
Function call stack:
train_function
2020-10-23 22:07:09.094736: W tensorflow/core/kernels/data/generator_dataset_op.cc:103] Error occurred when finalizing GeneratorDataset iterator: Failed precondition: Python interpreter state is not initialized. The process may be terminated.
[[{{node PyFunc}}]]
dataset
目录有 83 个子目录,每个类一个,每个子目录都包含给定类的图像。错误输出中的维度 1328 是批量大小 (16) 乘以类数 (83),维度 16 是批量大小(如果我更改 BATCH_SIZE
,两个维度都会相应变化。
老实说,我并不真正理解错误,因此非常感谢任何解决方案,甚至任何形式的洞察力问题出在哪里。
最佳答案
问题是 TripletSemiHardLoss期待
labels
y_true
to be provided as 1-D integer Tensor with shape[batch_size]
of multi-class integer labels
但是flow_from_directory默认生成 categorical
标签;使用 class_mode="sparse"
应该可以解决这个问题。
关于tensorflow - 使用三元组损失和预训练的 resnet 时形状不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64506725/
**摘要:**本实验主要是以基于Caffe ResNet-50网络实现图片分类(仅推理)为例,学习如何在已经具备预训练模型的情况下,将该模型部署到昇腾AI处理器上进行推理。 本文分享自华为云社区《【C
您好,我正在尝试通过微调方法使用 Resnet 神经网络来训练癌症数据集 这是我以前微调它的方法。 image_input = Input(shape=(224, 224, 3)) model = R
我正在尝试使用预训练的 resnet 并使用三元组损失对其进行微调。我想出的以下代码是我在该主题上找到的教程的组合: import pathlib import tensorflow as tf im
我需要获得一些关于深度神经网络的知识。 对于“ResNet”非常深的神经网络,我们可以使用迁移学习来训练模型。 但是 Resnet 已经在 ImageNet 数据集上进行了训练。因此,它们的预训练权重
在我的理解中,全连接层(简称 fc)用于预测。 例如,VGG Net 使用了 2 个 fc 层,它们都是 4096 维。 softmax 的最后一层具有与 num:1000 类相同的维度。 但是对于r
我正在尝试构建一个图像生成器,它将: 获取原始图像 读入图像并将其大小调整为 resnet50 的 (224,224,3) 对其执行数据增强(旋转、翻转等) 为其创建 Resnet50 特征(使用 m
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我尝试使用 Keras ResNet 50 应用程序模型来解决此代码的问题: #Tensorflow and tf.keras import tensorflow as tf from tensorf
我按照这个文档https://arxiv.org/pdf/1512.03385.pdf实现了cifar 10的ResNet但我的准确度与文档中得到的准确度有明显差异我的 - 86%个人电脑女儿 - 9
我正在尝试使用 convolutional residual network neural network architecture (ResNet)。到目前为止,我已经使用 Keras 实现了用于时
常见的‘融合'操作 复杂神经网络模型的实现离不开"融合"操作。常见融合操作如下: (1)求和,求差 # 求和 layers.Add(inputs) # 求
发生此错误,而我的原始代码不包含“导入 resnet”。 似乎在导入 tensorflow 时发生了错误。 Traceback (most recent call last): File "ste
我正在尝试使用我的自定义数据修改 Resnet50,如下所示: X = [[1.85, 0.460,... -0.606] ... [0.229, 0.543,... 1.342]] y = [2,
我训练了 Resnet-50 分类网络来对我的对象进行分类,并使用以下代码来评估网络。 from tensorflow.keras.models import load_model import cv
我正在尝试使用我的自定义数据修改 Resnet50,如下所示: X = [[1.85, 0.460,... -0.606] ... [0.229, 0.543,... 1.342]] y = [2,
我正在尝试使用 Keras 的 resnet 实现来执行具有完全不同的图像集(黑白 16 位)的传输学习任务。那么 Keras 期望输入什么?具有 3 个 channel 和 -127-128 范围的
我想使用来自 Tensorflow 的预训练 ResNet 模型。我下载了 code (resnet_v1.py) 用于模型和 checkpoint (resnet_v1_50.ckpt) 文件 he
我正在尝试重新训练 inception-resnet-v2 的最后一层。这是我想出的: 获取最后一层的变量名 创建一个 train_op 以仅最小化这些变量 wrt 损失 恢复除最后一层之外的整个图,
我下载 Resnet18 模型来训练模型。 当我输入时 model 显示 ResNet( (conv1): Conv2d(3, 64, kernel_size=(7, 7), stride=(2,
我正在尝试在我自己的图像和标签上训练 Tensorflow 官方 resnet 模型 ( link )。 我创建了 imagenet_main.py 的副本( my_data_main.py ) 在那
我是一名优秀的程序员,十分优秀!