• 大小: 1.07MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-09
  • 语言: 其他
  • 标签: TensorFlow  TFRecord  DNN  

资源简介

本文主要编写针对一个简单的分类数据集通过TFRecord的文件存储方式存取至磁盘上,然后通过相应读写方法,读取TFRecord文件,并做简单的训练来熟悉整个流程。https://blog.csdn.net/qq_37972530/article/details/85057631

资源截图

代码片段和文件信息

# -*- coding: utf-8 -*-
“““
Created on Thu Dec 20 16:05:02 2018

@author: Administrator
“““

# _*_ coding:utf-8 _*_
import numpy as np
import tensorflow as tf
import pandas as pd
import math
from sklearn.model_selection import train_test_split
from sklearn.decomposition import PCA
from sklearn.preprocessing import OneHotEncoder

def get_data():
    #读取数据
    data=pd.read_csv(‘data.csv‘encoding=‘gbk‘)
    #删除空字段
    data=data.dropna(axis=1 how = ‘all‘)
    #删除重复字段
    data=data.drop(columns=[‘flag1‘‘flag2‘‘flag3‘‘flag4‘‘flag5‘‘cust_id‘])
    #获取列字段名
    data_columns=[i for i in data.columns]
    for columns in data_columns:
        #获取unique
        columns_unique=data[columns].unique()
        len_unique=len(columns_unique)    
        #达到判断条件替换数据为数字
        if len_unique<10:
            for i in range(len_unique):
                data.loc[data[columns]==columns_unique[i]columns]=i
        #赋值含字符串字段
        try:
            data[columns]=data[columns].astype(np.float32)
        except baseException:
            data.loc[data[columns]!=0columns]=0.0
            data[columns]=data[columns].astype(np.float32)
    

    data_Y=data[‘YY‘]
    data_X=data.drop(columns=[‘YY‘])

    data_mean=np.mean(data_Xaxis=0)
    tmp_i=0
    for k in data_columns[1:]:
        #data.loc[data[k]==np.NaNk]=data_mean[k]
        data_X[k]=data_X[k].fillna(data_mean[tmp_i])
        tmp_i+=1
    return data_X.valuesdata_Y.values
#划分数据集
def divide_data():
    data_Xdata_Y=get_data()
    data_Y=np.reshape(data_Y[-11])
    #去y均值
    #meanY=np.mean(data_Yaxis=0)
    #data_Y-=meanY
    meanVals = np.mean(data_X axis=0)  
    #print(meanVals)
    data_X = data_X - meanVals  
    #PCA降维
    pca = PCA(n_components=8)
    data_X = pca.fit_transform(data_X)
    ‘‘‘
    #计算协方差
    #covMat = np.cov(data_X rowvar=True)
    covMat=data_X.corr()
    print(covMat)
    # 计算协方差矩阵的特征值和特征向量
    eigVals eigVects = np.linalg.eig(np.mat(covMat))
    # sort
    eigValInd = np.argsort(eigVals)
    print(“按特征值排序:{}“.format(eigValInd))
    #选择维度为300的特征值
    eigValInd = eigValInd[:-(3 + 1):-1]  # cut off unwanted dimensions
    redEigVects = eigVects[: eigValInd]  # reorganize eig vects largest to smallest   #选择与特征值对应的特征向量
    #去x均值
    meanVals = np.mean(data_X axis=0)  
    print(meanVals)
    meanRemoved = data_X - meanVals  
    
    lowDataMat = np.dot(meanRemoved  redEigVects)  #transform data into new dimensions
    data_X=lowDataMat
    ‘‘‘
    data_Y=data_Y.astype(np.int32)
    #print(data_Y)
    data_Y=OneHotEncoder(sparse=Truen_values=‘auto‘).fit_transform(data_Y).toarray()
    #数据集长度
    #len_0=data_X.shape[0]
    #print(data_X.shape)
    train_Xtest_Xtrain_Ytest_Y=train_test_split(data_X data_Y test_size=0.2 random_state=36)
    return train_Xtrain_Ytest_Xtest_Y
#1.TFRecord 写入
#定义Protocol Buffer(协议缓冲器)
def examples(imagelabel):
    return tf.train.Example(featu

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-12-30 17:13  python_cd\
     目录           0  2018-12-21 14:20  python_cd\.idea\
     目录           0  2018-12-20 22:16  python_cd\.idea\inspectionProfiles\
     文件         222  2018-12-20 22:15  python_cd\.idea\misc.xml
     文件         270  2018-12-20 22:15  python_cd\.idea\modules.xml
     文件         459  2018-12-20 22:16  python_cd\.idea\python_cd.iml
     文件       12041  2018-12-21 14:20  python_cd\.idea\workspace.xml
     文件     1200245  2018-12-20 12:18  python_cd\data.csv
     文件        4508  2018-12-30 17:14  python_cd\make_tfrecord.py
     目录           0  2018-12-30 17:12  python_cd\model\
     文件      421056  2018-12-21 16:19  python_cd\test_data.tfrecord
     文件     1684224  2018-12-21 16:19  python_cd\train_data.tfrecord
     文件        5490  2018-12-30 17:15  python_cd\train_record.py

评论

共有 条评论