小编Man*_*opp的帖子

InvalidArgumentError:loc 处需要可广播形状(未知)

背景

我对 Python 和机器学习完全陌生。我只是尝试根据在互联网上找到的代码建立一个 UNet,并希望将其适应我正在处理的情况。当尝试使用.fitUNet 来训练数据时,我收到以下错误:

InvalidArgumentError:  required broadcastable shapes at loc(unknown)
     [[node Equal (defined at <ipython-input-68-f1422c6f17bb>:1) ]] [Op:__inference_train_function_3847]
Run Code Online (Sandbox Code Playgroud)

当我搜索它时,我得到了很多结果,但大多数都是不同的错误。

这是什么意思?更重要的是,我该如何解决这个问题?

导致错误的代码

该错误的上下文如下:我想分割图像并标记不同的类。我为训练、测试和验证数据设置了目录“trn”、“tst”和“val”。该dir_dat()函数适用于获取相应数据集os.path.join()的完整路径。这 3 个文件夹中的每一个都有每个类的子目录,并用整数标记。在每个文件夹中,都有一些相应类别的图像。.tif

我定义了以下图像数据生成器(训练数据稀疏,因此增强):

classes = np.array([ 0,  2,  4,  6,  8, 11, 16, 21, 29, 30, 38, 39, 51])
bs = 15 # batch size

augGen = ks.preprocessing.image.ImageDataGenerator(rotation_range = 365,
                                                   width_shift_range = 0.05,
                                                   height_shift_range = 0.05,
                                                   horizontal_flip = True,
                                                   vertical_flip = True,
                                                   fill_mode = "nearest") \
    .flow_from_directory(directory = dir_dat("trn"), …
Run Code Online (Sandbox Code Playgroud)

python neural-network conv-neural-network tensorflow tf.keras

16
推荐指数
3
解决办法
5万
查看次数

tf.Keras 学习率计划——传递给优化器还是回调?

我只是想为我的第一个 CNN 设置学习率计划,我发现有多种方法可以实现:

  1. 可以使用以下方法将时间表包含在回调中tf.keras.callbacks.LearningRateScheduler()
  2. 人们可以使用它将其传递给优化器tf.keras.optimizers.schedules.LearningRateSchedule()

现在我想知道是否有任何差异,如果有,它们是什么?如果没有什么区别,为什么还要存在这些替代方案呢?有历史原因吗(应该首选哪种方法)?

有人可以详细说明吗?

python conv-neural-network keras tensorflow learning-rate

8
推荐指数
1
解决办法
2593
查看次数

JSONDecodeError:加载 tf.Keras 模型时需要值

当我尝试加载经过训练的tf.keras模型时,出现错误:JSONDecodeError: Expecting value。该问题不可重现,即,当我尝试加载在集群上训练并下载到计算机上的模型时,出现错误。当我尝试编译、保存和加载同一模型时,错误并未出现。

有什么想法可能是什么问题吗?

以下代码有效(与加载经过训练的模型相反):

import tensorflow as tf
from tensorflow import keras as ks
import numpy as np
import os
def UNet(n_classes, input_shape = (256, 256, 3), dropout = 0.05,
         ops = {"activation" : "relu",
                "padding" : "same",
                "kernel_initializer" : "he_normal"
        }):
    # input layer
    inputz = ks.layers.Input(shape = input_shape)
    
    # encoder part
    ## 1st convolution
    c1 = ks.layers.Conv2D(64, (3, 3), **ops)(inputz)
    c1 = ks.layers.Conv2D(64, (3, 3), **ops)(c1)
    ## 1st max pooling
    p1 …
Run Code Online (Sandbox Code Playgroud)

json python-3.x keras tensorflow

5
推荐指数
1
解决办法
2976
查看次数