tensorflow实现线性回归,tensorflow回归模型
代码路径:https://github。com/lilihongjava/lee blog _ python/tree/master/tensor flow _ logistic _ regression
数据集iris.csv,sklearn鸢尾花数据集
二分类这里用二元的交叉熵作为二分类的损失函数,激活函数为乙状结肠的
layer0=tf.keras.layers.Dense(1,input_shape=(x_data.shape[1],),activation= sigmoid )model=TF。喀拉斯。顺序([第0层])模型。编译(loss= binary _ cross entropy ,optimizer=adam )多分类分类交叉熵:多类的对数损失,它是一个多分类损失函数,可以配合着分类器一起使用。
第0层=TF。喀拉斯。层次。dense(class _ num,input_shape=(x_data.shape[1],),activation= soft max )model=TF。喀拉斯。顺序([第0层])模型。编译(loss= category _ cross熵,optimizer=adam )整体代码# encoding:utf-8 @作者:李@时间:2020/6/24 16:35 @文件:main。py @ desc: 从张量流导入熊猫作为PD导入张量流作为TF。python。喀拉斯。utils。NP _ utils从util导入到_ categorical。common _ util import arg _ check _ transformation,multiple _ GPU _ strategy def model _ builder(x _ data,class_num): if class_num==2: #逻辑回归二分类layer0=tf.keras.layers.Dense(1,input_shape=(x_data.shape[1],),activation= sigmoid )model=TF。喀拉斯。顺序([第0层])模型。compile(loss= binary _ cross熵,optimizer=adam) #这里用二元的交叉熵作为二分类的损失函数否则:#多分类第0层=TF。喀拉斯。层次。dense(class _ num,input_shape=(x_data.shape[1],),activation= soft max )model=TF。喀拉斯。顺序([第0层])模型。compile(loss= category _ cross entropy ,optimizer= Adam )返回模型定义TF _ logistic _ regression(feature _ column=None,label_column=None,class_num=None,gpu=None,input1=None,output1=None): print(输入参数:,locals())feature_column=arg _ check _ transformation( list _ name _ str , feature _ column ,feature _ column)label_column=arg _ check _ transformation( list _ name _ str , label _ column ,label _ column)class_num=arg _ check _ transformation( int , class _ num ,class _ num)df=PD。read _ CSV(输入1)try:x _ data=df[feature _ column]y _ data=df[label _ column]if class _ num!=2和y _ data。shape[1]==1:y _ data=to _ categorial(y _ data)#一维的分类转成多列y_data=pd .DataFrame(y_data) if gpu: dataset,BATCH_SIZE,strategy=multiple _ GPU _ strategy(x _ data,y_data)with策略。scope():model=model _ builder(x _ data,class _ num)模型。拟合(数据集。BATCH(BATCH _ SIZE),verbose=False)else:model=model _ builder(x _ data,class_num) model.fit(x_data,y _ data,epochs=1000)异常:引发异常(模型训练错误)打印(模型训练完成)如果输出1:模型。如果_ _ name _ _= _ _ main _ _ :#二分类TF _ logistic _ regression(feature _ column=萼片长度(厘米),萼片宽度(厘米),花瓣长度(厘米),花瓣宽度(cm),label_column=target ,class_num=2,gpu=False,input1= ./data/iris_two.csv ,output1= ./data/output.h5) #多分类TF _ logistic _ regression(feature _ column=萼片长度(厘米),萼片宽度(厘米),花瓣长度(厘米),花瓣宽度(cm),label_column=target ,class_num=3,gpu=False,input1= ./data/iris.csv ,output1= ./data/output.h5 )