我想实现一个具有多输入和多输出的复杂模型。所以我只能使用Keras.models.Model来实现它。
keras == 2.2.4 张量流== 1.13.1
但是我得到这个错误:
使用TensorFlow后端。
警告:tensorflow:来自 G:\ Anaconda3 \ lib \ site-packages \ tensorflow \ python \ framework \ op_def_library.py:263: colocate_with(来自tensorflow.python.framework.ops)已弃用, 将在以后的版本中删除。
更新说明:
托管服务器自动处理的托管。
回溯(最近通话最近一次):
文件 “ G:\ Anaconda3 \ lib \ site-packages \ IPython \ core \ interactiveshell.py”, 第3326行,在run_code中 exec(code_obj,self.user_global_ns,self.user_ns)
文件“”,第1行,在 runfile('G:/JupyterWorkSpace/InfosExtractor/code/BERT/ModelTest.py', wdir ='G:/ JupyterWorkSpace / InfosExtractor / code / BERT')
文件“ G:\ PyCharm \ PyCharm 2018.3.4 \ helpers \ pydev_pydev_bundle \ pydev_umd.py“,行197,在运行文件中 pydev_imports.execfile(filename,global_vars,local_vars)#执行脚本
文件“ G:\ PyCharm \ PyCharm 2018.3.4 \ helpers \ pydev_pydev_imps_pydev_execfile.py“,第18行,在execfile中 exec(compile(contents +“ \ n”,file,'exec'),glob,loc)
文件“ G:/JupyterWorkSpace/InfosExtractor/code/BERT/ModelTest.py”, 第19行,在 out = myModel(输入)
文件“ G:\ Anaconda3 \ lib \ site-packages \ keras \ engine \ base_layer.py”, 第474行,在致电中 output_shape = self.compute_output_shape(input_shape)
文件“ G:\ Anaconda3 \ lib \ site-packages \ keras \ engine \ network.py”,行 587,以compute_output_shape
raise NotImplementedError
NotImplementedError
我发现这些子类的_is_graph_network是False。我在keras.network中找到了代码:
def compute_output_shape(self, input_shape):
if not self._is_graph_network:
# Must be implemented by subclasses.
raise NotImplementedError
我也找不到一些有关“#必须由子类实现”的示例。
一个简单的示例,例如:
from keras import Model, Input, losses
from keras.layers import Dense
from keras.optimizers import SGD
class MyModel(Model):
def __init__(self, **kwargs):
super(MyModel, self).__init__(**kwargs)
self.dense1 = Dense(256)
def call(self, inputs, mask=None):
out = self.dense1(inputs)
return out
if __name__ == "__main__":
input = Input(shape=(256,))
myModel = MyModel()
out = myModel(input)
model = Model(inputs=input, outputs=out)
model.compile(optimizer=SGD, loss=losses.sparse_categorical_crossentropy)