pytorch转keras

pytorch与keras的区别

 

模型输入:

区别pytorchkeras
APItorch.tensor

Input

形状NCHW

NHWC

#pytorch
            #批次, 通道, 高, 宽
a = torch.randn(1,4,160,160)


#keras
#形状和批次分开    
a = Input(shape = (160, 160, 4), batch_size = 1)

 

卷积:

区别pytorchkeras
APInn.Conv2D

Conv2D

输入通道参数有输入通道没有输入通道
padding任意输入一个值'valid'没填充,'same'有填充
#pytorch
self.conv = Conv2d(in_channels, out_channels, kernel_size, stride, padding=padding, bias=bias)

#keras
output = Conv2D(input.shape[-1] // reduction, kernel = (1,1), padding = "valid", use_bias = False)(output)

 

反卷积:

区别pytorchkeras
API

nn.ConvTranspose2d

Conv2DTranspose

输入通道参数有输入通道没有输入通道
#pytorch
self.dconv = nn.ConvTranspose2d(in_channels, out_channels, kernel_size, stride, bias=bias)

#keras
output = Conv2DTranspose(out_channels, kernel_size, stride, use_bias=bias)(input)

 

上采样:

区别pytorchkeras
API

nn.UpsamplingBilinear2d

需要自定义

#pytorch
                                #缩放因子
self.up = nn.UpsamplingBilinear2d(scale_factor=2)

#keras
import tensorflow.compat.v1 as tf
#需要tf1版本里的resize
def my_upsampling(x,img_w,img_h,method=0):
    """0:双线性差值。1:最近邻居法。2:双三次插值法。3:面积插值法"""
    return tf.image.resize_images(x,(img_w,img_h),0)
                                       #输出宽高
output = Lambda(my_upsampling,arguments={'img_w':input.shape[2] * 2,'img_h':input.shape[1] * 2})(input)

 

池化:

区别pytorchkeras
 

nn.AdaptiveAvgPool2d(1)

没有自适应池化,需要利用自定义池化自定义

 

 

 

 

BatchNormalization:

区别pytorchkeras
API

nn.BatchNorm2d

BatchNormalization

输入有输入通道没有输入通道
#pytorch
nn.BatchNorm2d(in_size),

#keras
output = BatchNormalization()(output)

 

激活:

区别pytorchkeras
API

nn.ReLU

Activation

 不同激活函数不同api不同激活通过输入字符串来表示
#pytorch
self.act = nn.Sigmoid()
self.act = nn.ReLU


#keras
output = Activation("sigmoid")(output)
output = Activation("relu")(output)

 

不定期更新。。。

 

 

 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值