tensorflow-federated - TypeError : Expected tensorflow. python.framework.tensor_spec.TensorSpec,发现numpy.ndarray

标签 tensorflow-federated

当我想从 TFF 0.12.0 迁移到 TFF 0.18.0 时出现以下错误, 知道我有一个图像数据集,这是我的 sample_batch

images, labels = next(img_gen.flow_from_directory(path0,target_size=(224, 224), batch_size=2))
sample_batch = (images,labels)
...

def model_fn():

  keras_model = create_keras_model()
  return tff.learning.from_keras_model(
      keras_model,
      input_spec=sample_batch,
      loss=tf.keras.losses.SparseCategoricalCrossentropy(),
      metrics=[tf.keras.metrics.SparseCategoricalAccuracy()])

那么我该如何修改我的 sample_batch 以使其与这个版本相符呢?请帮忙 !!谢谢

最佳答案

版本 0.13.0 sample_batch 参数已弃用。 input_spec 参数必须是 tff.Typetf.TensorSpec根据 the documentation .

numpy.ndarray 构建 tf.TensorSpec 结构:

def tensor_spec_from_ndarray(a):
  return tf.TensorSpec(dtype=tf.dtypes.as_dtype(a.dtype),
                       shape=a.shape)

sample_batch = (images,labels)  # assumes images and labels are np.ndarray
input_spec = tf.nest.map_structure(
  tensor_spec_from_ndarray, sample_batch)

关于tensorflow-federated - TypeError : Expected tensorflow. python.framework.tensor_spec.TensorSpec,发现numpy.ndarray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66206118/

相关文章:

python - 联邦学习: convert my own image dataset into tff simulation Clientdata

python - 混合 TensorFlow 和 TensorFlow 联合代码的推荐方法是什么?

python - 我可以在 Tensorflow 联合学习 (TFF) 的 keras 模型中使用 class_weight

tensorflow-federated - TFF 客户有没有办法拥有内部状态?

python - 模块 'keras.api._v2.keras.experimental' 没有属性 'PeepholeLSTMCell'

python - 如何在 Tensorflow Fedarated 中加载 Fashion MNIST 数据集?

tensorflow - 在联合训练中实现数据生成器

python - 联邦学习训练期间模型性能没有提高

python - 如何实现自定义编码 Tensorflow Federated

tensorflow - 有什么方法可以使用tensorflow-federated API对真实的多台机器进行联邦学习吗?