在 Mnist 数据集上,MobileNet 在 tff 学习环境中显示出较低的准确率,但在 TensorFlow 环境中显示出较高的准确率。如何提高准确率?

发布于 2025-01-13 14:00:53 字数 720 浏览 2 评论 0原文

每轮的准确率都停留在 0.111。但同一模型在正常张量流环境下的准确率达到 91%。两种场景中使用的优化器都是 SGD。模型函数: `

def model_fn():
 model=tf.keras.Sequential()
 model.add(tf.keras.applications.MobileNetV2(include_top = False, pooling = 'avg',
 weights = 'imagenet',input_shape=(96,96,3)))
 model.add(tf.keras.layers.Dense(10, activation = 'softmax'))
 model.layers[0].trainable = False
 return tff.learning.from_keras_model(model,input_spec=collections.OrderedDict([('x', 
 tf.TensorSpec(shape(None,96,96,3),dtype=tf.float32, name=None)),
         ('y', tf.TensorSpec(shape=(None,), dtype=tf.int32, name=None))]),
 loss=tf.keras.losses.SparseCategoricalCrossentropy(),
 metrics=[tf.keras.metrics.SparseCategoricalAccuracy()])

`

The accuracy is stuck on 0.111 on every round. But the same model gives an accuracy of 91% in the normal tensorflow environment. The optimizer used in both scenarios is SGD. The model function :
`

def model_fn():
 model=tf.keras.Sequential()
 model.add(tf.keras.applications.MobileNetV2(include_top = False, pooling = 'avg',
 weights = 'imagenet',input_shape=(96,96,3)))
 model.add(tf.keras.layers.Dense(10, activation = 'softmax'))
 model.layers[0].trainable = False
 return tff.learning.from_keras_model(model,input_spec=collections.OrderedDict([('x', 
 tf.TensorSpec(shape(None,96,96,3),dtype=tf.float32, name=None)),
         ('y', tf.TensorSpec(shape=(None,), dtype=tf.int32, name=None))]),
 loss=tf.keras.losses.SparseCategoricalCrossentropy(),
 metrics=[tf.keras.metrics.SparseCategoricalAccuracy()])

`

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文