问题标签 [efficientnet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
184 浏览

tensorflow - CPU/GPU/TPU 上 EfficientNetB0 和 ResNet50 之间的推理速度测试

我在 EfficientNetB0 和 ResNet50 上进行了推理速度测试(两者都是 TensorFlow 实现,没有头,并且在 imagenet 权重上进行了预训练)。考虑到 EfficientNetB0 的参数数量较少(几乎是 1/6),我预计它会更快。但是,在我的小型实验中,GPU 并非如此。我在 Colab 上的 CPU 和 TPU 上对此进行了测试,EfficientNetB0 在这两个硬件上更快。对此有什么解释吗?我现在明白了,较低的 FLOPS 数量与较低的推理速度没有直接关系,但是不同硬件上的速度不同是否有特定的原因。这是预期的行为吗?另外,据我所知,如果有人可以分享有关影响推理速度的因素的资源,那将是很棒的。

0 投票
0 回答
42 浏览

python - UnknownError: OSError: cannot identify image file <_io.BytesIO object at 0x7fc87d222b30> multiprocessing.pool.RemoteTraceback:

我正在尝试使用 EfficientNet 进行迁移学习并收到此错误任何答案请提供详细信息如何解决。错误是当我尝试训练模型时。由于某种原因,它有时无法读取图像。

我有这个错误,我知道它与枕头和阅读图像或张量流有关:

0 投票
1 回答
60 浏览

tensorflow - 如何使用 tensorflow 微调训练好的模型和保存的模型?

我有一个大数据集,我想通过这个数据集训练efficientnetb0,但是 google colab 运行超时,所以我想训练模型的完全连接层并保存它,然后在几个小时后再次加载并微调基本模型(高效网络b0)。我怎样才能做到这一点?

0 投票
1 回答
340 浏览

python-3.x - 我可以使用 PyTorch Data Loader 加载保存在 CSV 文件中的原始数据图像吗?

我将原始数据图像保存在单独的 CSV 文件中(文件中的每个图像)。我想使用 PyTorch 对它们进行 CNN 训练。我应该如何加载适合用作 CNN 输入的数据?(另外,它是 1 通道,图像网络的输入默认为 RGB)

0 投票
1 回答
63 浏览

python - 无法运行 EfficientNet 模型来训练 4 类

我将用 4 个带有图像的类来训练我的模型。

这是我预先训练的代码看起来像

我用这样的代码训练了我的模式:

但是出现了如下问题:

错误

有什么帮助吗?

0 投票
1 回答
260 浏览

python - 如何在使用 EfficientNet 时防止过拟合/欠拟合

我是 python 新手,所以对于我的大学期末项目,我使用 EfficientNet 将成熟棕榈油分为 4 类。我总共有 5852 个训练数据(每个 1463 个)和 132 个测试数据(每个 33 个)。我使用了来自互联网的代码。但结果远非好。我已经添加了 layers.dropout 以防止/避免欠拟合。我还使用 imagenet 进行迁移学习。有什么解决方案可以改善结果吗?

编辑:我已经将我的代码从 conv_base.trainable = False 更改为 conv_base.trainable = True。但我觉得结果还是不好

这是我的完整代码:https ://drive.google.com/file/d/1OeiSA23xmF5ceq19aqc1l20mlT3Uxocs/view?usp=sharing

这是我的结果

模型精度

模型损失

0 投票
0 回答
60 浏览

ubuntu - TypeError: Expected a message Descriptor, got Descriptor + tensorflow import problem in pytorch environment

我正在尝试在我的数据集上运行以下代码:https ://github.com/fgabel/EfficientDet-DeepSORT-Tracker

但是我遇到了以下错误:

然后我也尝试在终端中导入 tensorflow,发现同样的错误。

我在安装了 pytorch 和 tesnorflow 的虚拟环境中工作。我还在环境中安装了 protobuf。在搜索错误时,我找到了答案,唯一的解决方案是同时卸载 tensorflow 和 protobuf,然后再次安装 tensorflow 以自动安装 protobuf。

但就我而言,如果我卸载 tensorflow,那么由于 pytorch 的存在,我将无法再次安装 tensorflow。

如果在提供任何解决方案时需要,这些是详细信息:

Python:3.9.6(通过 anaconda 安装)

protobuf:3.9.2(通过 pip 安装)

Pytorch:1.9.0.post2

CUDA:10.2.89

Cuda 编译工具,7.5 版,V7.5.17

库登:7.6.5

请让我知道可以做些什么来解决这个问题。

0 投票
0 回答
77 浏览

pytorch - train-acc 0.99 和 val-acc 0.99 的训练有素的efficientnet-v2-b3 非常擅长预测测试数据集,但在训练和验证数据集上表现不佳

我使用来自“https://github.com/rwightman/pytorch-image-models”的预训练 EfficientNet-v2-b3 模型和 pytorch 框架来训练烟盒。火车如下:

  1. 有1100个等级,每个等级是一种卷烟规格。所有的图像都存储在一个名为 original_dataset_20210805 的目录中,每个子目录代表一类图像。

  2. 删除每个只有少于 50 个图像的类。剩下959个班。

  3. 对于每个类,随机选择 10 张图像进入名为“valData”的验证数据集,随机选择大约 1/10 幅图像进入名为“testData”的测试数据集,剩余的图像被选入名为“trainData”的训练数据集。

  4. 对于每张图像,将其大小调整为 w×h = 200×300。

  5. 为了增强数据,将每个图像旋转 90°,并将每个类别的所有旋转 90° 的图像选择为一个类别。例如,如果有一个香烟规格 A,则将 A 的所有图像旋转 90°,并将所有旋转的图像命名为新的类 A-rot1。然后旋转180°得到A-rot2,旋转270°得到A-rot3。对所有类进行轮换,然后我们有 959×4=3836 个类。

  6. “trainData”有 502172 张图像,“valData”有 38360 张图像,“testData”有 21463 张图像。

  7. 使用预训练模型开始训练。保存最佳模型如下:

出口列车if train_acc >= 0.99 and val_acc >= 0.99

  1. 在 Epoch 121,火车以 train_acc 0.9911 和 val_acc 0.9902 退出。

  2. 使用最佳模型推断testData,准确度为0.981。使用最好的模型来推断 trainData,我预计准确率应该超过 0.99,但实际上是 0.84。在 valData 上使用模型,实际准确率为 0.82。这很奇怪。然后我在另一个 original_dataset_20210709 上使用最好的模型,它与上面的 original_dataset_20210805 有些不同。并且 original_dataset_20210709 中的图像没有被调整为 w×h=200×300。准确度为 0.969。

  3. 推断代码如下:

  1. 我检查了 python 代码,发现可能的原因可能是在输入模型之前对图像的转换。变换代码如下:

为了验证我的猜测,对于推断数据集“valData”(不使用“trainData”,因为它需要太多时间),我将转换从 更改transform_test = build_transforms(cfg.img_height, cfg.img_width, 'test')transform_test = build_transforms(cfg.img_height, cfg.img_width, 'train'). 预计准确度为 0.9918。

我的问题是:

  • 作为参考,经过训练的模型在 testData 上的准确度为 0.989,但在 trainData 上的准确度约为 0.84,在 valData 上的准确度约为 0.82。
  • 我在转换中做错了什么?
  • 还是有其他原因造成这种奇怪现象?</li>

感谢所有愿意回答问题的人。

附1:12)验证码如下:

  1. load_data 代码是:
  1. “TheDataset”类定义如下:

附加2:15)整个train.py是:

0 投票
0 回答
45 浏览

python - ValueError:层模型需要 5 个输入,但它收到了 3035 个输入张量

我有 5 个 EfficientNetB3 模型的堆叠模型。我试图从中得到预测。以下是数据集和模型构建:

数据集:

堆叠模型:

我正在尝试使用以下代码段进行预测:

但是,我收到以下错误:

ValueError:层模型需要 5 个输入,但它接收到 3035 个输入张量。收到的输入:[<tf.Tensor 'IteratorGetNext:0' shape=(None, 300, 300, 3) dtype=float32>, <tf.Tensor 'IteratorGetNext:1' shape=(None, 300, 300, 3) dtype =float32>, <tf.Tensor 'IteratorGetNext:2' shape=(None, 300, 300, 3) dtype=float32>, <tf.Tensor 'IteratorGetNext:3' shape=(None, 300, 300, 3) dtype =float32>, <tf.Tensor 'IteratorGetNext:4' shape=(None, 300, 300, 3) dtype=float32>, <tf.Tensor 'IteratorGetNext:5' shape=(None, 300, 300, 3) dtype =float32>, <tf.Tensor 'IteratorGetNext:6' shape=(None, 300, 300, 3) dtype=float32>, <tf.Tensor 'IteratorGetNext:7' shape=(None, 300, 300, 3) dtype =float32>, <tf.Tensor 'IteratorGetNext:8' shape=(None, 300, 300,

我该如何解决这个错误?顺便说一句,数据集有 1214 张图像。提前致谢。

0 投票
1 回答
110 浏览

python - 如何在 tensorflow Lite 中使用 EfficientNet-Lite4

我尝试在带有 tensorflow Lite 的 google colab 上使用 EfficientNet-Lite4,但出现错误name 'efficienetnet_lite4_spec' is not defined我该怎么办?还是仅适用于 EfficientNet-Lite0? 在此处输入图像描述