先来回答一下你提的几个问题:Pytorch连最基本的maximum, minimum, tile等等这些numpy和tensorflow中最简单的运算都没有,用view来reshape还会报错contiguous(虽然我知道怎么解决),官方手册也查不到相应说明,这个东西到底好用在哪里?
你说的那几个函数pytorch中都有(或者可以实现)maximum: torch.max() 同时包含了numpy.max 和numpy.maximum的功能
minimum:torch.min()
np.tile(arr,(100,100)) 等价于 tensor.repeat(100,100)
contiguous的问题我经常听别人提问,但我从未遇到过(我几乎从未调用过`tensor.contiguous()`),大多数人也很少会把tensor弄成不连续。之所以tensor会不连续,是为了能够共享内存,更高效的内存利用(其实只要PyTorch在设计的时候把所有的不连续操作都返回一个连续的tensor即可解决这个问题,但是不值得,大多数不连续的tensor都会进行一个reduce操作,然后就变成了连续的了)。
numpy那么多函数,PyTorch不可能都支持,即使不支持,也可以在numpy中实现,然后转成tensor,毕竟numpy和tensor之间的转换极其高效快速(他们共享内存).这个东西到底好用在哪里?
还是说就是定义网络结构简单?
PyTorch到底好在哪,其实我也只是有个朦胧的感觉,总觉的用的舒服自在,用其它框架的时候总是觉得这里或者那里别扭。第一次用PyTorch几乎是无痛上手,而且随着使用的增加,更是越来越喜欢: