【搬运】pytorch,keras,tensorflow的模型代码框架

5 篇文章 0 订阅
5 篇文章 0 订阅

pytorch,keras,tensorflow的模型代码框架

参考自此公众号文章,后续会不断地加详细一些

pytorch

from torch.optim as Optimizer
from torch import nn
import torch

class modelName(nn.Module):
    def init(self,):
        # 加入每个层的实例化
        # 常用如下
        nn.Embedding()
        nn.RNN()
        nn.Dropout()
        nn.linear()
        nn.BatchNorm1d()

        pass
    def forword(self,input):
        # 一次向前传播的过程
        pass

def trainging_common_sentences():
    optimizer = Optimizer.XXX()
    optimizer.zero_grad() # 梯度清零
    input = torch.tensor(data,dtype=torch.xxdtype)
    model = modelName()
    output = model(input)
    loss = loss_fn(output,target)
    optimizer.backward(loss)
    optimizer.step()

keras

from keras.layers import Input,Embedding,Dense
from keras.models import Model
import keras.backend as K 
from keras.optimizers import Adam

def create_model():
    input = Input((dim_1,))
    embed = Embedding(out_dim,input_dim,)(input)
    model = Model(input,output)

def train_common_sentences():
    loss = K.binary_crossentropy(y,output)
    model.add_loss(loss)
    model.compile(optimizer="sgd")
    model.fit(x_train,y_train,epochs=5,batch_size=32)

tensorflow


def model(features,labels,mode,params):
    net = tf.feature_column.input_layer(features,params["feature_columns"])
    logits = tf.layer.dense(net,params["n_classes"],activation=None)
    predicted_class=tf.argmax(logits,1)
    if mode==tf.estimator.ModeKeys.PREDICT:
        predictions={"CLASS":predicted_class}
        return tf.estimator.EstimatorSpec(mode,predictions=predictions)
    loss=tf.losses.sparse_softmax_cross_entropy(labels=labels,logits=logits)
    if mode==tf.estimator.ModeKeys.TRAIN:
        optimizer=tf.train.AdagradOptimizer(learning_rate=0.1)
        train_op =optimizer.minimize(loss,global_step=tf.train.get_global_step())
        return tf.estimator.EstimatorSpec(mode,train_op=train_op,loss=loss)
    accuracy=tf.metrics.accuracy(labels=labels,predictions=predicted_class,name="acc_op")
    metrics={"accuracy":accuracy}
    if mode==tf.estimator.ModeKeys.EVAL:
        return tf.estimator.EstimatorSpec(mode,loss=loss,eval_metrics_ops=metrics)


estimator=tf.estimator.Estimator(
    model_fn,#模型函数
    model_dir=None,#模型路径
    config=None,#设置参数对象
    params=None,#超参数,传递给model_fn
    warm_start_from=None,#热启动目录
)

model_fn = model(
    features,
    labels,
    mode, # train,evaluate,predict
    params
)

estimator.train(input_fn,)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值