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