对学姐的U-net网络的学习杂记

.npy文件是一种存放数据的文件格式。.npy格式是用python程序生成的,只能用python程序读取和显示。

转自:https://jingyan.baidu.com/article/7f41ecec26081d593d095c18.html

例如:

imgs_test = np.load(self.npy_path+"/imgs_test.npy")

一次性输出30个相同的‘-’符号

print('-'*30)

关于args和kwargs

*args可以当作可容纳多个变量组成的list;**kwargs可以当作容纳多个key和value的dictionary

转自:https://blog.csdn.net/chenjinyu_tang/article/details/8136841


数据类型转换 astype

imgs_test = imgs_test.astype('float32')

对@property的理解和使用

转自:https://blog.csdn.net/u013205877/article/details/77804137

这里的核心讲的就是@property作为了get方法的替换,对应的@setter是作为对set方法的替换。这样在调用函数的时候有输入那就是作为对@setter的输入,不然就是从@property里面读取属性。

class myUnet(object):
	def __init__(self, img_rows = 240, img_cols = 240):
		self.img_rows = img_rows
		self.img_cols = img_cols
# 参数初始化定义
……

# 载入数据
	@property
	def get_unet(self):
		inputs = Input((self.img_rows, self.img_cols,1))

控制台输出:

(?, 240, 240, 64)这里我的理解是这个U-net网络的大小为240*240*64的。


这里就是在不断的建立新的父Class,里面包含__init和他要用到的函数;之后用他产生子Class,去调用父类的函数。这个父类及其函数可以放在其他辅助文件下,这样主文件看起来结构更清晰。


在data.py的r 231的imgs_test.npy来源暂时不明。

imgs_test = np.load(self.npy_path+"/imgs_test.npy")

Keras和TensorFlow的关系和区别

转自:https://blog.csdn.net/capecape/article/details/78390246

TensorFlow和theano都是深度学习框架,TensorFlow和theano比较灵活,也比较难学,它们其实就是一个微分器。(这里我改了)
Keras其实就是TensorFlow和Keras的接口(Keras作为前端,TensorFlow或theano作为后端),它也很灵活,且比较容易学。可以把keras看作为tensorflow封装后的一个API。

所以说,在这里看到的

from keras.models import *
from keras.layers import *
from keras.optimizers import *
from keras.callbacks import ModelCheckpoint, LearningRateScheduler
from keras import backend as keras

就是在Pycharm输入keras作为前端调用TensorFlow,也便有了在debug时的

而我们使用的Pycharm是调试器。


PyTorch vs TensorFlow,哪个更适合你

转自:https://yq.aliyun.com/articles/183473(2017年文章)

这里对Pytorch和Tensorflow两种框架做了:起源、接受度、图的动态定义 vs 静态定义、调试、可视化、部署、框架or库的对比并且得出了结论。

这里列一个表,作为对这篇文章的重点内容的简单整理:

PyTorch vs TensorFlow
 TensorFlowPyTorch
起源谷歌大脑开发,并在谷歌公司中广泛地应用于研究生产Torch框架的表亲,Torch是基于lua开发的,在Facebook公司里被广泛使用;重写&定制目的:为了得到更快的速度和本地化
接受度在研究人员和行业专业人士接受度高,易于使用比较新(仍处于测试阶段),但发展迅速
图的定义在模型能够运行之前静态地定义图;与外部世界的所有通信都通过tf.Session对象和tf.Placeholder来执行可随时定义、随时更改、随时执行节点,并且没有特殊的会话接口或占位符
调试需要tfdbg的特殊工具,该工具允许在运行时评估TensorFlow表达式,并浏览会话内的所有张量和操作(这里不是可以用keras作为api在Pycharm里面调试的吗?)可以使用任何一个调试工具,比如pdb、ipdb、PyCharm调试器或者原始的print语句
可视化

Tensorboard

在训练模型的时候,你可以在调整某些超参数之后再训练一遍。两次运行过程可以同时显示在Tensorboard上,以显示它们之间存在的差异。Tensorboard能够:

  • 显示模型图
  • 绘制标量变量
  • 使分布和直方图可视化
  • 使图像可视化
  • 使嵌入可视化
  • 播放音频
没有一个类似于Tensorboard的工具,但有一个可以将Tensorboard集成进来的工具。
部署TensorFlow Serving的框架,用于在一个指定的gRPC服务器上部署模型;支持分布式训练

可以使用Flask或者另一种替代方法来基于模型编写一个REST API;分布式训练目前仅支持Linux

https://pytorch.org/docs/master/distributed.html

框架 or 库

纯TensorFlow看起来更像是一个库,而不是框架:所有的操作都在低层次进行,因此不得不编写大量的样板代码;

在使用TensorFlow以及选择适合任务的框架上有着很大的自由度,你可以在这些框架中选择:TFLearntf.contrib.learnSonnetKeras、或者纯tf.layers等等

datasets模块,包含了用于评测深度学习架构的流行数据集的包装。nn.Module可用于构建一个自定义的卷积神经网络分类器。 nn.Module一个构建块,可用于创建复杂的深度学习架构。 torch.nn包中有大量可用作模型基础的模块;torch.nn.Module能够以面向对象的方式来定义可重用的模块,这种方法非常灵活强大。torch.nn.Sequential来组成各种模块。可以以函数的形式使用所有的内置模块,非常方便。
结论

非常强大非常成熟的深度学习库,具有非常强大的可视化功能,以及有多个可供选择的框架来进行高级模型开发;

如果你有以下需求,那么TensorFlow是一个很好的选择:

  • 开发生产模型
  • 开发需要部署在移动平台上的模型
  • 需要良好的社区支持和齐全的文档
  • 想要各种形式的丰富的学习资源(TensorFlow有一个大型开放式网络课程
  • 想要或需要使用Tensorboard
  • 需要大规模的分布式模型训练

一个年轻的框架,但其发展速度越来越快;

如果你有以下需求,它可能会比较适合你:

  • 用于研究,或者是用于生产的非功能性需求并不是很苛刻
  • 需要更好的开发和调试体验
  • 爱所有Python化的东西

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值