【问题标题】:Converting CSV file data into federated data将 CSV 文件数据转换为联合数据
【发布时间】:2020-11-23 04:26:19
【问题描述】:

我正在尝试将我的 CSV 数据集转换为联合数据。请找出我在运行代码时遇到的代码和错误

代码:导入集合

import numpy as np
import pandas as pd
import tensorflow as tf
import tensorflow_federated as tff

np.random.seed(0)
df = pd.read_csv('path to my csv file')

client_id_colname = 'aratio: continuous.' 
SHUFFLE_BUFFER = 1000
NUM_EPOCHS = 1

client_ids = df[client_id_colname].unique()
train_client_ids = sample(client_ids.tolist(),500)
test_client_ids = [x for x in client_ids if x not in train_client_ids]

def create_tf_dataset_for_client_fn(client_id):
  client_data = df[df[client_id_colname] == client_id]
  dataset = tf.data.Dataset.from_tensor_slices(client_data.to_dict('list'))
  dataset = dataset.shuffle(SHUFFLE_BUFFER).batch(1).repeat(NUM_EPOCHS)
  return dataset

train_data = tff.simulation.ClientData.from_clients_and_fn(
        client_ids=train_client_ids,
        create_tf_dataset_for_client_fn=create_tf_dataset_for_client_fn
    )
test_data = tff.simulation.ClientData.from_clients_and_fn(
        client_ids=test_client_ids,
        create_tf_dataset_for_client_fn=create_tf_dataset_for_client_fn
    )

错误:--------------------------------------------- ------------------------------

NameError                                 Traceback (most recent call last)
<ipython-input-7-9d85508920a8> in <module>
     15 # split client id into train and test clients
     16 client_ids = df[client_id_colname].unique()
---> 17 train_client_ids = sample(client_ids.tolist(),500)
     18 test_client_ids = [x for x in client_ids if x not in train_client_ids]
     19 

NameError: name 'sample' is not defined

【问题讨论】:

    标签: python pandas tensorflow tensorflow-federated federated-learning


    【解决方案1】:

    Python 找不到 sample 函数。代码需要从某个地方导入它,有几个可能的选项:

    要使用第一个,代码需要import random,示例行需要更改为:

    train_client_ids = random.sample(client_ids.tolist(), 500)
    

    【讨论】:

    • 嗨@Zachary Garret,非常感谢。运行我的代码时,我没有看到任何错误或输出。那么,我的联合数据将保存在哪里?
    • 您能告诉我,有没有办法将我的联合数据保存到文件中?我可以看到数据的一个实例,但我希望将整个联合数据保存到一个文件中
    • 我不确定我是否理解这个问题,我提前道歉。似乎df 已经包含所有数据并且已经从 csv 文件中读取? train_datatest_data 是以编程方式访问此数据的便捷方式,但我相信它们是相同的数据。保存这两个对象的目标也是?
    【解决方案2】:

    在您的 import 语句列表中添加以下行:

    from random import sample 
    

    【讨论】:

      猜你喜欢
      • 2019-09-11
      • 2013-09-09
      • 1970-01-01
      • 2019-04-13
      • 2013-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-27
      相关资源
      最近更新 更多