这篇文章会总结几个Keras的基本概念,了解了这几个基本概念,Keras建模将会快速上手。
话不多说,直奔主题!
张量(Tensor),可以理解为Keras里的一种数据类型,相当于C语言里得数组。你在存储的时候总需要了解数据的长度、大小还有维度各种各样的信息,而这个Tensor就是用来干这个的。举几个例子,如0阶张量,也就是标量,指的是一个数;1阶张量指的是向量,几个数字有序排列就是一个一阶张量;2阶张量指的是矩阵,把几个一阶张量有序排起来也就是一个2阶张量,以此类推…而张量的阶数也可称为维度或者轴(axis),这个其实很好理解,想想数据中的特征,一般来说有几类特征我们就常说这个样本是几维的,因为每类特征都相当于坐标系里的一个轴。
数据格式(DataFormat):Keras在构建模型时需要设定输入数据的格式,也就是这个所谓的DataFormat。在这方面,不同的深度学习库产生了分歧,Theano、Caffe为代表的采用"通道维靠前",而以TensorFlow为代表的采用"通道维靠后"。Keras可自行设定采用哪种方式,可在代码中通过K.image_data_format()函数查看。如:
model.add(Convolution2D(batch_size,input_shape=(None, 1, 28, 28)) #分别代表多少数据、通道数、宽、高
可以看出,可以使用None表示任意值,这也为处理不同维的数据提供了方便。
另外(784,)和