Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 将数据帧转换为tfrecord_Python 3.x_Dataframe_Training Data_Tfrecord_Tensorflow2.x - Fatal编程技术网

Python 3.x 将数据帧转换为tfrecord

Python 3.x 将数据帧转换为tfrecord,python-3.x,dataframe,training-data,tfrecord,tensorflow2.x,Python 3.x,Dataframe,Training Data,Tfrecord,Tensorflow2.x,我在转换包含字符串标签和浮点2D numpy数组的数据帧时遇到问题,我不知道为什么,但当我使用数据类型时,我发现两者都有对象类型,我尝试将标签从对象转换为字符串,然后转换为字节,但不起作用,我尝试使用以下方法将点转换为numpy: data['Points']=data['Points'].to_numpy() 但点仍然是object类型,我的目标是将点转换为float,即使我尝试注释标签的特征,点的特征也不起作用,我得到的字符串索引muts是整数 我真的被卡住了,谢谢你的帮助 这就是完整的

我在转换包含字符串标签和浮点2D numpy数组的数据帧时遇到问题,我不知道为什么,但当我使用数据类型时,我发现两者都有对象类型,我尝试将标签从对象转换为字符串,然后转换为字节,但不起作用,我尝试使用以下方法将点转换为numpy:

data['Points']=data['Points'].to_numpy()
但点仍然是object类型,我的目标是将点转换为float,即使我尝试注释标签的特征,点的特征也不起作用,我得到的字符串索引muts是整数

我真的被卡住了,谢谢你的帮助

这就是完整的代码

SPLIT_SIZE=0.8


training_length = int(len(data) * SPLIT_SIZE)
validation_length = int(len(data) - training_length)

data=data.sample(frac=1)

training_set = data.iloc[0:training_length,0:2]
training_set['Labels']=training_set['Labels'].astype('string')
training_set['Points']=training_set['Points'].to_numpy()
validation_set=data.iloc[-validation_length:,0:2]
validation_set['Labels']=validation_set['Labels'].astype('string')
validation_set['Points']=validation_set['Points'].to_numpy()

def _int64_feature(value):
    return tf.train.Feature(int64_list=tf.train.Int64List(value=[value]))

def _float_feature(value):
    return tf.train.Feature(float_list=tf.train.FloatList(value=value))



def _bytes_feature(value):
  return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value]))

def _dtype_feature(ndarray):
    """match appropriate tf.train.Feature class with dtype of ndarray. """
    #assert isinstance(ndarray, np.ndarray)
    dtype_ = ndarray.dtype
    if dtype_ == np.float64 or dtype_ == np.float32  :
        return lambda array: tf.train.Feature(float_list=tf.train.FloatList(value=array))
    elif dtype_ == np.int64:
        return lambda array: tf.train.Feature(int64_list=tf.train.Int64List(value=array))

def tables_to_TF( data,tf_filename):
    # Target variable needs to be the last column of data

    filepath = os.path.join(tf_filename)
    print('Writing', filepath)
    #writer = tf.compat.v1.python_io.TFRecordWriter(tf_filename)
    writer = tf.io.TFRecordWriter(tf_filename)

    'for file in tqdm(queue_list):'
   
    #feature1= data['Labels']
    #feature2= data['Points']
    
    
    example = tf.train.Example(
        features=tf.train.Features(feature={

            'Labels': _bytes_feature(data['Labels'].str.encode('utf-8')),
            'Points': _dtype_feature(data['Points']),
                }) 


                    )
    


    writer.write(example.SerializeToString())

if __name__ == "__main__":


    filepathlist = ["dataset_astyx_hires2019/dataset_astyx_hires2019/data/"]
  
    tffilename = "dataset_astyx_hires2019/dataset_astyx_hires2019/data/train.tfrecord"
    tffilename2 = "dataset_astyx_hires2019/dataset_astyx_hires2019/data/validation.tfrecord"
    #import pdb; pdb.set_trace()      

    tables_to_TF( training_set, tffilename)
    tables_to_TF( validation_set, tffilename2)