【问题标题】:regarding set_image_dim_ordering('tf') in keras关于 keras 中的 set_image_dim_ordering('tf')
【发布时间】:2016-11-19 21:10:01
【问题描述】:

在尝试使用 Keras 实现时,我做了如下操作:

from keras import backend as K
K.set_image_dim_ordering('tf') 

它会生成以下错误消息。这是什么意思?我认为 set_image_dim_ordering 包含在 Keras 中。

File "train.py", line 14, in <module>
K.set_image_dim_ordering('tf')

AttributeError: 'module' 对象没有属性 'set_image_dim_ordering'

【问题讨论】:

  • 你有哪个版本的keras?对我来说,在 1.1.0 上,它有效。
  • 您好,我只是测试一下,版本是1.0.3,因为我是在公共环境中使用它,所以我很快就可以更新它了。我有什么方法可以使用当前版本设置此参数吗?谢谢。
  • 我不知道。您能否在问题本身中包含详细信息?
  • 嗨,sygi,背景是这样的。我正在尝试测试此处提供的代码github.com/jocicmarko/ultrasound-nerve-segmentation/blob/master/…,它使用 Theano 作为 Keras 的后端。我正在使用 Tensorflow,因此我正在尝试修改代码以使其在 Tensorflow 上运行。我更改的第一件事是 K.set_image_dim_ordering('tf') 在原始代码中设置为 'th'。
  • 还有其他几种方法可以做到这一点。请参考stackoverflow.com/questions/39848466/…

标签: tensorflow keras


【解决方案1】:

Keras 是深度学习框架,可以使用来自 'TensorFlow' 、'Theano' 和 'CNTK' 作为后端。 每个后端都有自己的偏好来使用通道排序

  • Theano:频道一阶
  • Tensorflow:通道最后下单
  • CNTK:频道最后下单

如果你使用'Theano'作为后端,你应该设置“channels_first order”并且在导入keras库之后你可以使用这行代码:

keras.backend.set_image_data_format('channels_first')

数据形状如下:(通道、行、列)。

注意“数据形状”中的通道顺序应与“后端”中的通道顺序相同。例如,如果您使用 Tensorflow 作为后端,那么数据的输入形状应该是 channel last order(对于 RGB 图像:(行、列、channel ))

【讨论】:

    【解决方案2】:

    试试这个:

    from keras import backend as K K.tensorflow_backend.set_image_dim_ordering('th')

    【讨论】:

    • 在 Keras 版本 2.3.1 中不工作你有其他选择吗?
    【解决方案3】:

    在 Keras 2.3.1 中使用:

    from keras as backend as K
    K.common.set_image_dim_ordering('th')
    

    是的。它适用于 Keras 版本 2.3.1

    【讨论】:

    • 发布代码时,请使用正确的格式,如下所示:stackoverflow.com/help/formatting。对于内联代码,您可以使用单个反引号 `,对于代码块,您可以使用其中的三个。或者,您还可以为代码块提供语法突出显示的语言,例如```python
    【解决方案4】:

    在 Keras 2.3.1 中使用:

    from keras as backend as K
    K.common.set_image_dim_ordering('th')
    

    【讨论】:

      【解决方案5】:

      你用的是什么版本?

      “在后端,set_image_orderingimage_ordering 现在是 set_data_formatdata_format.

      Keras 2.0 Release notes

      【讨论】:

        【解决方案6】:

        适用于张量流 V2.3

        import tensorflow.keras.backend as K
        # to know the image order
        K.image_data_format()
        # to set the image order
        K.set_image_data_format()
        

        【讨论】:

          【解决方案7】:

          要同时支持新旧版本的 Keras,对于 theano 和 tensorflow,您可以使用:

          try:
              if K.backend() == 'theano':
                  K.set_image_data_format('channels_first')
              else:
                  K.set_image_data_format('channels_last')
          except AttributeError:
              if K._BACKEND == 'theano':
                  K.set_image_dim_ordering('th')
              else:
                  K.set_image_dim_ordering('tf') 
          

          (取自“https://github.com/Arsey/keras-transfer-learning-for-oxford102/blob/master/util.py”)

          【讨论】:

            【解决方案8】:

            您可能需要这样做:

            from keras import backend as K
            K.set_image_dim_ordering("th")
            

            【讨论】:

              猜你喜欢
              • 2017-06-06
              • 1970-01-01
              • 1970-01-01
              • 2019-02-12
              • 2021-12-25
              • 1970-01-01
              • 2020-05-28
              • 2020-11-08
              • 2020-11-21
              相关资源
              最近更新 更多