1、Python基础:
List:
class=[‘M’,‘B’,‘T’]
切片:class[0:3] 表示从索引0开始取,直到索引3为止。但是不包括索引3.
列表生成式:g = (x * x for x in range(10))
可变参数:*
类和实例:面向对象中类和实例。
def _init_(self,name,score):self是函数的第一个参数,表示创建的实例的本身。和普通函数的区别是,类的方法和普通函数没有什么区别。就是第一个参数是self。
类中的属性如果不希望被外部访问,可以把属性的名称前加__表示私有变量。
2、Tensorflow安装
https://blog.csdn.net/Cloudox_/article/details/77823389
https://blog.csdn.net/myGFZ/article/details/79151635
ImportError: cannot import name Merge
回退keras版本
https://blog.csdn.net/w5688414/article/details/80145894
模型可以跑起来了。
3、Keras中组件介绍:
序贯模型:多个网络层的线性叠加。也就是“一条路走到黑“
函数式编程:model.add();
完成模型的搭建后,需要使用model.compile()方法完成编译模型。编译时需要指明损失函数和优化器。完成模型编译后,需要在训练数据上按batch进行一定次数的迭代来训练网络。(model.fit()),model.evaluate()可以进行模型的评估。Model.predict()可以对新的数据进行预测。
model.summary():打印出模型概况
model.get_config():返回包含模型配置信息的python字典
model.get_weights():返回模型权重张量的列表。
model.set_weights():将权重载入给模型
model.to_json():返回代表模型的json字符串
model.save_weights(filepath):将模型权重保存到指定路径,文件内容是HDF%
model.load_weight(filepath,by_name=False):从hdf5文件中加载权重到当前模型。
compile(self, optimizer, loss, metrics=None, loss_weights=None, sample_weight_mode=None, weighted_metrics=None, target_tensors=None)
optimizer:优化器
loss:损失函数
metrics:列表,包含评估模型在训练和测试时的性能的指标
fit(self, x=None, y=None, batch_size=None, epochs=1, verbose=1, callbacks=None, validation_split=0.0, validation_data=None, shuffle=True, class_weight=None, sample_weight=None, initial_epoch=0, steps_per_epoch=None, validation_steps=None)
fit函数返回一个History的对象,其中History.history属性记录了损失函数和其他指标的函数和其他指标随epoch变化的情况。
x:输入数据
y:标签
batch_size:指定梯度下降时每个batch包含的样本数。
epochs:训练时终止时的epoch值
verbose:日志显示
callbacks:list,其中的元素是keras.callbacks.Callback的对象
validation_split:0~1之间的浮点数,
validation_data:形式为(X,y)或(X,y,sample_weights)的tuple
shuffle:布尔值
class_weight:字典,将不同的类别映射为不同的权值,该参数用来在训练过程中调整损失函数(只能用于训练)
sample_weight:用于在训练时调整损失函数(仅用于训练)。
initial_epoch:
steps_per_epoch:
validation_steps:
evaluate(self, x, y, batch_size=32, verbose=1, sample_weight=None)
x:输入数据
y:标签
batch_size:整数
verbose:
sample_weight:
predict(self, x, batch_size=32, verbose=0)
本函数按batch获得输入数据对应得shu
train_on_batch(self, x, y, class_weight=None, sample_weight=None)
常用层
对应于core模块,core内部定义了一系列常用的网络层,包括全连接层,
Dense层
output = activation(dot(input, kernel)+bias)
Activation层
激活层对一个层的输出施加激活函数
Dropout层
为输出函数施加Dropout函数,Dropout将在训练过程中每次更新参数时按一定概率随机断开输入神经元。防止过拟合。
Flatten层
即把多维的输入一维化,常用在卷积层到全连接层的过度。
Reshape层
用来将输入的shape转成特定的shape
permute层
将输入的维度按照给定模式进行重排。
卷积层
Conv1D层
用以在一维输入信号上进行邻域滤波。
Conv2D层
二维卷积层,即对图像的空域卷积。该层对二位输入进行滑动窗卷积。
池化层
局部连接层
循环层
嵌入层:该层将正整数转换为具有固定大小的向量。
融合层:提供了一系列用于融合两个层或两个张量的层对象和方法。
用于融合两个层或两个向量的层对象和方法。
高级激活层:
规范层:该层在每个batch上将前一层的激活值重新规范化,使其值输出数据的均值接近0,标准差接近1.
噪声层:为数据施加0均值,标准差为stddv的加性高斯噪声。
包装器:把层应用到输入的每一个时间步上