《我用TensorFlow 1.2写了整个Dispnet的网络框架,现在想试试TensorFlow 2.10的网络框架》。于是我根据2.12的API写了如下模型
将张量流导入为 tf
从 tensorflow 导入 keras
层 = tf.keras.layers
conv1 = layer.Conv2D(filters=64, kernel_size=(7, 7), strides=(1, 1), padding="SAME", activation="relu, name="conv1")(输入)
max_pool1 = layer.MaxPool2D(pool_size=(2, 2), strides=(2, 2), padding="SAME", name="max_pool1")(conv1)
……
层...
……
cat1 = tf.keras.layers.Concatenate(axis=3)([upconv1, max_pool1]) iconv1 = layer.Conv2D(filters=32, kernel_size=(3, 3), strides=(1, 1), padding="SAME", activation="relu", name="iconv1")(cat1)
model = keras.Model(inputs=input, outputs=iconv1, name="Dispnet_Simple") model.compile(优化器='adam',loss=tf.keras.losses.MeanSquaredError,metrics=['accuracy']) 输出 = []
model.fit(x=combine_image, y=output, batch_size=BATCH_SIZE, epochs=2)
错误: 追溯(最近一次通话): “C:\Users\SUPERJ~1\AppData\Local\Temp_autograph_generated_filedo1_ym8c.py”,第 15 行,在 tf__train_function 中 retval = ag__.converted_call(ag__.ld(step_function), (ag__.ld(self), ag__.ld(iterator)), 无, fscope) ValueError:在用户代码中:
File "C:\ProgramData\Anaconda3\envs\pytorch\lib\site-packages\keras\engine\training.py", line 1160, in train_function *
return step_function(self, iterator)
File "C:\ProgramData\Anaconda3\envs\pytorch\lib\site-packages\keras\engine\training.py", line 1146, in step_function **
outputs = model.distribute_strategy.run(run_step, args=(data,))
File "C:\ProgramData\Anaconda3\envs\pytorch\lib\site-packages\keras\engine\training.py", line 1135, in run_step **
outputs = model.train_step(data)
File "C:\ProgramData\Anaconda3\envs\pytorch\lib\site-packages\keras\engine\training.py", line 995, in train_step
self._validate_target_and_loss(y, loss)
File "C:\ProgramData\Anaconda3\envs\pytorch\lib\site-packages\keras\engine\training.py", line 959, in _validate_target_and_loss
raise ValueError(
ValueError:未发现丢失。您可能忘记在
loss
方法中提供 compile()
参数。
求大神救救孩子!!!!!!
我改变了模型的损失参数。 compile() 无数次。我真的不写了吗!!!