Python 克拉斯';型号';对象没有属性'_可赎回损失';
我有一个由网络组成的类,它接受给定的np.array输入和输入形状,并返回具有相同形状的输出。我想实现一个自定义的loss,它包含三个参数。为此,我使用Keras方法。添加损失,但它似乎抛出了一个错误。 我使用的类如下(简化): 但是,在实例化类并运行_build方法时:Python 克拉斯';型号';对象没有属性'_可赎回损失';,python,tensorflow,keras,deep-learning,Python,Tensorflow,Keras,Deep Learning,我有一个由网络组成的类,它接受给定的np.array输入和输入形状,并返回具有相同形状的输出。我想实现一个自定义的loss,它包含三个参数。为此,我使用Keras方法。添加损失,但它似乎抛出了一个错误。 我使用的类如下(简化): 但是,在实例化类并运行_build方法时: net = Net() net._build() 我被抛出以下错误: <ipython-input-124-46b9e7f916ce> in _build(self) 50 51
net = Net()
net._build()
我被抛出以下错误:
<ipython-input-124-46b9e7f916ce> in _build(self)
50
51 self.get_optimiser()
---> 52 model = self.get_loss(inputs, x)
53
54 return model
<ipython-input-124-46b9e7f916ce> in get_loss(self, inputs, outputs)
151 model = Model(inputs=[inputs, y_true, is_weight], outputs=[outputs])
152
--> 153 model.add_loss(weighted_dice_loss(y_true, outputs, is_weight))
154 self._model.compile(optimizer = self._optimiser, loss = None, metrics = [dice_coef])
155
~/miniconda3/envs/segment/lib/python3.7/site-packages/tensorflow/python/keras/engine/base_layer.py in add_loss(self, losses, inputs)
899 eager_losses.append(_tag_unconditional(loss))
900
--> 901 self._callable_losses += callable_losses
902
903 call_context = base_layer_utils.is_in_call_context()
AttributeError: 'Model' object has no attribute '_callable_losses'
引发的错误现在已更改为:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-4-c4c292a59224> in <module>
11
12
---> 13 unet_model = unet._build()
<ipython-input-2-9245d04f54db> in _build(self)
44 inputs = Input(shape = self._input_shape)
45
---> 46 x = self.first_layers(inputs)
47 x = self.contractive_path(x)
48 x = self.middle_path(x)
<ipython-input-2-9245d04f54db> in first_layers(self, inputs)
57
58 layer = Conv3D(filters = self._n_filters, kernel_size = self._patch, activation = self._activation, kernel_initializer = self._kernel_initializer,
---> 59 padding = self._padding)(inputs)
60
61 return layer
~/miniconda3/envs/segment/lib/python3.7/site-packages/keras/legacy/interfaces.py in wrapper(*args, **kwargs)
89 warnings.warn('Update your `' + object_name + '` call to the ' +
90 'Keras 2 API: ' + signature, stacklevel=2)
---> 91 return func(*args, **kwargs)
92 wrapper._original_function = func
93 return wrapper
~/miniconda3/envs/segment/lib/python3.7/site-packages/keras/layers/convolutional.py in __init__(self, filters, kernel_size, strides, padding, data_format, dilation_rate, activation, use_bias, kernel_initializer, bias_initializer, kernel_regularizer, bias_regularizer, activity_regularizer, kernel_constraint, bias_constraint, **kwargs)
617 kernel_constraint=kernel_constraint,
618 bias_constraint=bias_constraint,
--> 619 **kwargs)
620
621 def get_config(self):
~/miniconda3/envs/segment/lib/python3.7/site-packages/keras/layers/convolutional.py in __init__(self, rank, filters, kernel_size, strides, padding, data_format, dilation_rate, activation, use_bias, kernel_initializer, bias_initializer, kernel_regularizer, bias_regularizer, activity_regularizer, kernel_constraint, bias_constraint, **kwargs)
103 bias_constraint=None,
104 **kwargs):
--> 105 super(_Conv, self).__init__(**kwargs)
106 self.rank = rank
107 self.filters = filters
~/miniconda3/envs/segment/lib/python3.7/site-packages/keras/engine/base_layer.py in __init__(self, **kwargs)
130 if not name:
131 prefix = self.__class__.__name__
--> 132 name = _to_snake_case(prefix) + '_' + str(K.get_uid(prefix))
133 self.name = name
134
~/miniconda3/envs/segment/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py in get_uid(prefix)
72 """
73 global _GRAPH_UID_DICTS
---> 74 graph = tf.get_default_graph()
75 if graph not in _GRAPH_UID_DICTS:
76 _GRAPH_UID_DICTS[graph] = defaultdict(int)
AttributeError: module 'tensorflow' has no attribute 'get_default_graph'
---------------------------------------------------------------------------
AttributeError回溯(最近一次呼叫上次)
在里面
11
12
--->13 unet_model=unet._build()
内建(自建)
44输入=输入(形状=自身。\输入\形状)
45
--->46 x=自身第一层(输入)
47 x=自收缩路径(x)
48 x=自身中间路径(x)
在第一层(自身、输入)
57
58层=Conv3D(过滤器=self.\n\u过滤器,内核大小=self.\u补丁,激活=self.\u激活,内核初始化器=self.\u内核初始化器,
--->59填充=自填充(输入)
60
61返回层
包装中的~/miniconda3/envs/segment/lib/python3.7/site-packages/keras/legacy/interfaces.py(*args,**kwargs)
89 warnings.warn('Update your`'+object\u name+'`调用+
90'Keras 2 API:'+签名,堆栈级别=2)
--->91返回函数(*args,**kwargs)
92包装器._原始函数=func
93返回包装器
~/miniconda3/envs/segment/lib/python3.7/site-packages/keras/layers/convolutional.py in\uuuuuuu init\uuuuuuuu(自我、过滤器、内核大小、步幅、填充、数据格式、膨胀率、激活、使用偏差、内核初始值、偏差初始值、内核正则值、偏差正则值、活动正则值、内核约束、偏差约束、**kwargs)
617内核约束=内核约束,
618偏差约束=偏差约束,
-->619**夸尔格)
620
621 def get_配置(自身):
~/miniconda3/envs/segment/lib/python3.7/site-packages/keras/layers/convolutional.py in_uuu__init_u(自、秩、过滤器、内核大小、步幅、填充、数据格式、膨胀率、激活、使用偏差、内核初始化器、偏差初始化器、内核正则化器、偏差正则化器、活动正则化器、内核约束、偏差约束、**kwargs)
103偏差约束=无,
104**夸尔格):
-->105超级(_Conv,self)。uuu init_uuuuuuu(**kwargs)
106 self.rank=rank
107 self.filters=过滤器
~/miniconda3/envs/segment/lib/python3.7/site-packages/keras/engine/base\u layer.py in\uuuuuuuu init\uuuuuuu(self,**kwargs)
130如果不是姓名:
131前缀=自我类名称__
-->132 name=_to_snake_大小写(前缀)+'.'+str(K.get_uid(前缀))
133 self.name=name
134
get\u uid中的~/miniconda3/envs/segment/lib/python3.7/site-packages/keras/backend/tensorflow\u backend.py(前缀)
72 """
73全局图
--->74 graph=tf.get\u default\u graph()
75如果图形不在图形UID中:
76 GRAPH\uUID_DICTS[GRAPH]=defaultdict(int)
AttributeError:模块“tensorflow”没有属性“get\u default\u graph”
请添加用于此操作的所有导入code@Daniel-可以尝试以下方式导入库吗,从tensorflow.keras.layers导入Conv3D、Conv3Dtranspose、BatchNormalization、Cropping3D、AveragePoolG3D、UpSampling3D
请添加用于此操作的所有导入code@Daniel-您可以尝试在中导入库吗按照这种方式,tensorflow.keras.layers中的导入Conv3D、Conv3Dtranspose、批次标准化、裁剪3D、平均池3D、上采样3D
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import Input, optimizers
from tensorflow.keras.models import Sequential, load_model
from keras.layers.convolutional import Conv3D, Conv3DTranspose
from keras.layers.normalization import BatchNormalization
from keras.layers import Cropping3D, UpSampling3D, AveragePooling3D
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-4-c4c292a59224> in <module>
11
12
---> 13 unet_model = unet._build()
<ipython-input-2-9245d04f54db> in _build(self)
44 inputs = Input(shape = self._input_shape)
45
---> 46 x = self.first_layers(inputs)
47 x = self.contractive_path(x)
48 x = self.middle_path(x)
<ipython-input-2-9245d04f54db> in first_layers(self, inputs)
57
58 layer = Conv3D(filters = self._n_filters, kernel_size = self._patch, activation = self._activation, kernel_initializer = self._kernel_initializer,
---> 59 padding = self._padding)(inputs)
60
61 return layer
~/miniconda3/envs/segment/lib/python3.7/site-packages/keras/legacy/interfaces.py in wrapper(*args, **kwargs)
89 warnings.warn('Update your `' + object_name + '` call to the ' +
90 'Keras 2 API: ' + signature, stacklevel=2)
---> 91 return func(*args, **kwargs)
92 wrapper._original_function = func
93 return wrapper
~/miniconda3/envs/segment/lib/python3.7/site-packages/keras/layers/convolutional.py in __init__(self, filters, kernel_size, strides, padding, data_format, dilation_rate, activation, use_bias, kernel_initializer, bias_initializer, kernel_regularizer, bias_regularizer, activity_regularizer, kernel_constraint, bias_constraint, **kwargs)
617 kernel_constraint=kernel_constraint,
618 bias_constraint=bias_constraint,
--> 619 **kwargs)
620
621 def get_config(self):
~/miniconda3/envs/segment/lib/python3.7/site-packages/keras/layers/convolutional.py in __init__(self, rank, filters, kernel_size, strides, padding, data_format, dilation_rate, activation, use_bias, kernel_initializer, bias_initializer, kernel_regularizer, bias_regularizer, activity_regularizer, kernel_constraint, bias_constraint, **kwargs)
103 bias_constraint=None,
104 **kwargs):
--> 105 super(_Conv, self).__init__(**kwargs)
106 self.rank = rank
107 self.filters = filters
~/miniconda3/envs/segment/lib/python3.7/site-packages/keras/engine/base_layer.py in __init__(self, **kwargs)
130 if not name:
131 prefix = self.__class__.__name__
--> 132 name = _to_snake_case(prefix) + '_' + str(K.get_uid(prefix))
133 self.name = name
134
~/miniconda3/envs/segment/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py in get_uid(prefix)
72 """
73 global _GRAPH_UID_DICTS
---> 74 graph = tf.get_default_graph()
75 if graph not in _GRAPH_UID_DICTS:
76 _GRAPH_UID_DICTS[graph] = defaultdict(int)
AttributeError: module 'tensorflow' has no attribute 'get_default_graph'