gpt4 book ai didi

keras - 值错误 : name for name_scope must be a string when Trying to Build up a Model Class in TF2. 0

转载 作者:行者123 更新时间:2023-12-04 11:42:55 38 4
gpt4 key购买 nike

我试图通过模仿 tf2.0 的文档来构建自定义模型。
enter link description here

        class CBR(layers.Layer):
"""Convolution + Batch normalisation + Relu"""
def __int__(self, filterNum, kSize, strSize, padMode, name='cbr', **kwargs):
super(CBR, self).__init__(name=name, **kwargs)
self.conv3D = layers.Conv3D(filters=filterNum, kernel_size=kSize, strides=strSize, padding=padMode, data_format='channels_first')
self.BN = layers.BatchNormalization(axis=1)
def call(self, inputs):
x = self.conv3D(inputs)
x=self.BN(x)
return activations.relu(x)

class TestNet(tf.keras.Model):
def __init__(self, inDim, classNum, name='testNet', **kwargs):
super(TestNet, self).__init__(name=name, **kwargs)
self.inDim = inDim
self.classNum = classNum
self.en_st1_cbr1 = CBR(32, 3, 1, 'valid')
def call(self, inputs):
x = layers.Input(shape=self.inDim)
x = self.en_st1_cbr1(x)
outputs = activations.softmax(x, axis=1)
return outputs

当我测试它时
classNum = 3
mbSize = 16
inDim = [4, 64, 64, 64]
TNet = TestNet(inDim, classNum)
TNet.build(input_shape=inDim)

它总是在 x = self.en_st1_cbr1(x) 线上引发错误通过打印

File "D:\TProgramFiles\Anaconda3\envs\keras-gpu\lib\site-packages\tensorflow_core\python\keras\engine\base_layer.py", line 814, in __call__
with graph.as_default(), backend.name_scope(self._name_scope()):

File "D:\TProgramFiles\Anaconda3\envs\keras-gpu\lib\site-packages\tensorflow_core\python\keras\backend.py", line 765, in name_scope
return ops.name_scope_v2(name)

File "D:\TProgramFiles\Anaconda3\envs\keras-gpu\lib\site-packages\tensorflow_core\python\framework\ops.py", line 6422, in __init__
raise ValueError("name for name_scope must be a string.")

ValueError: name for name_scope must be a string.

我一步一步地按照示例进行操作,但它根本不起作用。任何人都可以帮忙吗?谢谢。

最佳答案

由于缺少方括号,我遇到了同样的错误。我猜你的代码中某处有错别字。对我来说,这段代码产生了同样的错误

model = tf.keras.Sequential(
feature_extractor,
layers.Dense(num_classes))

添加方括号解决了这个问题
model = tf.keras.Sequential( [
feature_extractor,
layers.Dense(num_classes) ])

关于keras - 值错误 : name for name_scope must be a string when Trying to Build up a Model Class in TF2. 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59449789/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com