在TensorFlow 2.0中对大量的高阶API库进行了删减与合并,根据官方的解释,这一切的变化都是为了使TensorFlow2.0更加易用和简洁。本文以官方推荐的唯一高阶API库tf.keras为主,概括地介绍TensorFlow 2.0的高阶API。
tf.keras高阶API概览
在TensorFlow 2.0版本中完全移除了tf.contrib这个高阶API库,官方推荐的高阶API只有tf.keras。Keras是一个意在降低机器学习编程入门门槛的项目,其在业界拥有众多的拥护者和使用者。经过Keras社区的多年发展,Keras集成了很多符合工业和研究需求的高阶API,使用这些API只需要几行代码就可以构建和运行一个非常复杂的神经网络。TensorFlow官方社区首次宣布发布TensorFlow 2.0版本计划时就明确了Keras会深度融合到TensorFlow中,并且作为官方支持的高阶API。下面我们看看官方文档中提到的tf.keras下的接口模块。
为节省篇幅,本文不再结合实践案例详细讲解主要高阶API的使用,而是以构建一个线性回归模型为例介绍TensorFlow 2.0高阶API的使用。
在TensorFlow 2.0中可以使用高阶API tf.keras.Sequential进行神经网络模型的构建。示例代码如下:
1. #导入所需要的依赖包
2. import tensorflow as tf
3. import numpy as np
4.
5. #实例化一个tf.keras.Sequential
6. model=tf.keras.Sequential()
7. #使用Sequential的add方法添加一层全连接神经网络
8. model.add(tf.keras.layers.Dense(input_dim=1,units=1))
9.
10.#使用Sequential的compile方法对神经网络模型进行编译,loss函数使用MSE,optimizer使用SGD(随机梯度下降)
11.model.compile(loss='mse',optimizer='sgd')
在完成神经网络模型的构建和编译之后,需要准备训练数据,然后对神经网络模型进行训练。可以使用tf.keras.Sequential的fit方法进行训练,示例代码如下:
1. #随机生成一些训练数据,在-10到10的范围内生成700个等差数列作为训练输入
2. X = np.linspace(-10, 10, 700)
3. #通过一个简单的算法生成Y数据,模拟训练数据的标签
4. Y=2*X+100+np.random.normal(0, 0.1, (700, ))
5. #开始训练,“verbose=1”表示以进度条的形式显示训练信息,“epochs=200”表示训练的epochs为200,“validation_split=0.2”表示分离20%的数据作为验证数据
6. model.fit(X,Y,verbose=1,epochs=200,validation_split=0.2)
在完成神经网络模型的训练之后,可以使用Sequential的save方法将训练的神经网络模型保存为H5格式的模型文件。示例代码如下:
1. filename='line_model.h5'
2. model.save(filename)
3. print("保存模型为line_model.h5")
加载神经网络模型需要使用tf.keras.models.load_model这个API,在完成模型的加载后可以使用Sequential的predict方法进行预测。示例代码如下:
1. x=tf.constant([0.5])
2. model=tf.keras.models.load_model(filename)
3. y=model.predict(x)
4. print(y)
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks ,Hyperworks, Protel,CAXA,OpenWorks LandMark,MATLAB,Enovia,Winchill,TeamCenter,MathCAD,Ansys, Abaqus,ls-dyna, Fluent, MSC,Bentley,License,UG,ug,catia,Dassault Systèmes,AutoDesk,Altair,autocad,PTC,SolidWorks,Ansys,Siemens PLM Software,Paradigm,Mathworks,Borland,AVEVA,ESRI,hP,Solibri,Progman,Leica,Cadence,IBM,SIMULIA,Citrix,Sybase,Schlumberger,MSC Products...