Python 为什么这里会出现重复的节点名(在Keras中)?

Python 为什么这里会出现重复的节点名(在Keras中)?,python,tensorflow,keras,Python,Tensorflow,Keras,我有一个这样的函数来创建一个面具(从一个放松的伯努利分布) 在第二行中,我从均匀分布ValueError中提取样本:图中重复节点名称:“time\u distributed\u 29/random\u uniform/shape” 为什么它以这种方式构造节点名,我如何避免这种情况 在此之前,我尝试从K.random_uniform创建一些其他张量,比如K.random_uniform((1,2,3)),但它们没有导致这个问题。为了社区的利益,在这里指定解决方案(答案部分),即使它出现在评论部分

我有一个这样的函数来创建一个面具(从一个放松的伯努利分布)

在第二行中,我从均匀分布
ValueError中提取样本:图中重复节点名称:“time\u distributed\u 29/random\u uniform/shape”

为什么它以这种方式构造节点名,我如何避免这种情况


在此之前,我尝试从K.random_uniform创建一些其他张量,比如
K.random_uniform((1,2,3))
,但它们没有导致这个问题。

为了社区的利益,在这里指定解决方案(答案部分),即使它出现在评论部分

通过将
keras.backend
替换为
tensorflow.keras.backend
解决了错误,
ValueError:graph'time\u distributed\u 29/random\u uniform/shape'
中重复的节点名称

此外,在这种情况下,将
keras
替换为
tensorflow.keras
是一种很好的做法

将在新信息可用时更新此答案


学习愉快

为了社区的利益,在此处指定解决方案(答案部分),即使它出现在评论部分

通过将
keras.backend
替换为
tensorflow.keras.backend
解决了错误,
ValueError:graph'time\u distributed\u 29/random\u uniform/shape'
中重复的节点名称

此外,在这种情况下,将
keras
替换为
tensorflow.keras
是一种很好的做法

将在新信息可用时更新此答案


学习愉快

更新,我从使用
keras.backend
切换到使用
tensorflow.keras.backend
。使用混合型keras有什么问题吗?是的,你不应该混合tf.keras和keras,它们不一样library@Khanetor,您能否确认您的问题是否通过从
keras.backend
切换到
tensorflow.keras.backend
得到解决?现在通过切换到
tensorflow.keras.backend
得到解决,从某种意义上说,不会抛出错误。我不知道这是否有任何后果。@Khanetor,如果切换到
tensorflow.keras.backend
解决了您的问题,那么将所有内容转换为
tensorflow.keras
而不是
keras
,以避免混合使用,这不是一个好主意吗。此外,您还可以尝试升级到Tensorflow版本
2.2
。谢谢更新,我从使用
keras.backend
切换到使用
tensorflow.keras.backend
。使用混合型keras有什么问题吗?是的,你不应该混合tf.keras和keras,它们不一样library@Khanetor,您能否确认您的问题是否通过从
keras.backend
切换到
tensorflow.keras.backend
得到解决?现在通过切换到
tensorflow.keras.backend
得到解决,从某种意义上说,不会抛出错误。我不知道这是否有任何后果。@Khanetor,如果切换到
tensorflow.keras.backend
解决了您的问题,那么将所有内容转换为
tensorflow.keras
而不是
keras
,以避免混合使用,这不是一个好主意吗。此外,您还可以尝试升级到Tensorflow版本
2.2
。谢谢
# Using tensorflow 2.0.0, keras 2.3.1

def get_mask(inputs, units, px, ph):
    input_shape = K.shape(inputs)
    B = input_shape[0]
    D = input_shape[2]
    t = 1e-1
    eps = K.epsilon()

    ux = K.random_uniform((4, B, D))
    uh = K.random_uniform((4, B, units))

    zx = (1-K.sigmoid((K.log(px+eps) - K.log(1-px+eps) + K.log(ux+eps) - K.log(1-ux+eps)) / t))/(1-px)
    zh = (1-K.sigmoid((K.log(ph+eps) - K.log(1-ph+eps) + K.log(uh+eps) - K.log(1-uh+eps)) / t))/(1-ph)

    return zx, xh