当前位置: 首页 > 知识库问答 >
问题:

张量对象在使用tensorflow.keras.backend.shape时没有属性is_initialized

祁坚壁
2023-03-14

我有一个keras模型,当我从keras导入子模块(层、后端函数)时,它工作得很好。但是,如果我从tensorflow中导入这些,相同的精确模型会中断。克拉斯。

下面是一个说明问题的例子:

if True:
  from keras import backend as K
  from keras.models import Model
  from keras.layers import Input, Lambda
  from keras.preprocessing.image import ImageDataGenerator
else:
  from tensorflow.keras import backend as K
  from tensorflow.keras.models import Model
  from tensorflow.keras.layers import Input, Lambda
  from tensorflow.keras.preprocessing.image import ImageDataGenerator 

def ex_add(inputs):
  """Made-up example that illustrates the problem"""
  ones = K.ones(K.shape(inputs))
  return inputs + ones

img_input = Input(shape=(512, 512, 3))

ex = Lambda(pconv_add)(img_input)    

model = Model(inputs=[img_input], outputs=ex)
model.compile(optimizer='Adam', loss='mse')

test_generator = ... # data_generator.flow_from_directory() using ImageDataGenerator
img = next(test_generator)[0]
pconv_predict = model.predict(img)

从keras导入时,一切正常。从tensorflow导入。keras导致了这一点(当我调用model.predict或model.fit_生成器时):

错误:tensorflow:===================================================对象从未使用过(类型):如果要将其标记为已使用,请调用其“mark_used()”方法。它最初是在这里创建的:文件“/usr/lib/python3.6/runpy.py”,第193行,在“运行”模块中,作为“主”模块,mod_spec)

...

(为简洁起见,删除了长消息)

...

--------------------------------------------------------------------------- ()14#model.summary()15 img=下一个(train_generator)[0][0]---

/usr/local/lib/python3。6/dist包/tensorflow/python/keras/engine/training。py in predict(self、x、批处理大小、详细程度、步骤、最大队列大小、工人、使用多处理)1876 else:1877返回训练数组。预测循环(-

...

(为简洁起见,删除了长消息)

...

/usr/local/lib/python3。6/dist包/tensorflow/python/ops/variables。py in为变量初始化(变量)2897,否则为假。2898 """ -

/usr/local/lib/python3。6/dist包/tensorflow/python/ops/state_ops。py in是初始化的变量(ref,name)129返回gen_state_ops。is_variable_initialized(ref=ref,name=name)130#处理资源变量--

AttributeError:“Tensor”对象没有属性“已初始化”

问题根源在于Lambda层,尤其是K.shape(输入)。我试着用(45151512,3)替换它,不管我如何导入keras,它都工作得很好。你以前见过这个问题吗?我怎样才能解决它?

注意,我在Colaboratory上运行此代码。keras和tensorflow。keras版本是2.2。4和2.1。6-tf。

共有1个答案

隆礼骞
2023-03-14

这是一个悬而未决的问题:https://github.com/tensorflow/tensorflow/issues/24938 并且仅处于图形模式。在急切模式下,这可能会起作用。然而,tf的使用。零在图形模式和渴望模式下都能正常工作。

 类似资料:
  • 这是我的密码: 这条线给了我错误 "属性错误:'浮点'对象没有属性'exp'"。X,t是Numpy ndarray。

  • 问题内容: 我正在尝试使用cPickle在远程环境中加载该功能。但是我得到了错误“’模块’对象没有属性…”。我真正困扰的是,即使无法加载,命名空间也已经包含了该属性。 这是run.py 错误是 问题答案: 我发现此链接很有帮助:http : //stefaanlippens.net/python-pickling-and-dealing-with-attributeerror-module- ob

  • 问题内容: 我正在开发Django应用程序,并且出现以下错误 我的模型是这样构造的 我应该做什么? 问题答案: 首先,您必须非常小心地重写以具有非可选参数。记住,每次从一个查询集中获取一个对象时,它将被调用! 这是您想要的正确代码: 如果您只使用该对象的子类,我强烈建议在Animal上设置abstract选项。这样可以确保不为动物创建表,而仅为绵羊(等)创建表。如果未设置abstract,则将创建

  • 我创建了这个简单的GUI: 我让用户界面启动并运行。当我点击按钮时,我在控制台上得到以下错误: 为什么设置为?

  • 我想在没有命令的情况下为discord编写一条bot消息。但是我在运行代码时遇到了一个问题。错误为:“非类型”对象没有“发送”属性 Traceback(最近的调用最后):文件"D:/Development/Code Python/Bot Discord/discord-testbot.py",第18行,在my_background_task等待channel.send(通道,'New') 属性错误

  • 问题内容: 我将Selenium webdriver(chrome)与Python结合使用,试图从网页上的所有链接中获取 href 。当我尝试以下操作时: 它设法获取所有链接,但是在get_attribute上出现错误: “ WebElement”对象没有属性“ Get_Attribute” 尽管到处都看起来很正常。 问题答案: “ Get_Attribute”属性不存在,但是“ get_attr