当前位置: 首页 > news >正文

提高景区网站建设seo关键词分析表

提高景区网站建设,seo关键词分析表,小程序招商加盟,保险购买网站TensorFlow提供了众多的API,简单地可以分类为高阶API和低阶API. API太多太乱也是TensorFlow被诟病的重点之一,可能因为Google的工程师太多了,社区太活跃了~当然后来Google也意识到这个问题,在TensorFlow 2.0中有了很大的改善。本文…

TensorFlow提供了众多的API,简单地可以分类为高阶API和低阶API. API太多太乱也是TensorFlow被诟病的重点之一,可能因为Google的工程师太多了,社区太活跃了~当然后来Google也意识到这个问题,在TensorFlow 2.0中有了很大的改善。本文就简要介绍一下TensorFlow的高阶API和低阶API使用,提供推荐的使用方式。

高阶API(For beginners)

The best place to start is with the user-friendly Keras sequential API. Build models by plugging together building blocks.

TensorFlow推荐使用Keras的sequence函数作为高阶API的入口进行模型的构建,就像堆积木一样:

# 导入TensorFlow, 以及下面的常用Keras层
import tensorflow as tf  
from tensorflow.keras.layers import Flatten, Dense, Dropout# 加载并准备好MNIST数据集
mnist = tf.keras.datasets.mnist(x_train, y_train), (x_test, y_test) = mnist.load_data()# 将样本从0~255的整数转换为0~1的浮点数x_train, x_test = x_train / 255.0, x_test / 255.0# 将模型的各层堆叠起来,以搭建 tf.keras.Sequential 模型
model = tf.keras.models.Sequential([Flatten(input_shape=(28, 28)),Dense(128, activation='relu'),Dropout(0.5),Dense(10, activation='softmax')])# 为训练选择优化器和损失函数model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])
# 训练并验证模型
model.fit(x_train, y_train, epochs=5)model.evaluate(x_test,  y_test, verbose=2)

输出的日志:

Train on 60000 samples
Epoch 1/5
60000/60000 [==============================] - 4s 72us/sample - loss: 0.2919 - accuracy: 0.9156
Epoch 2/5
60000/60000 [==============================] - 4s 58us/sample - loss: 0.1439 - accuracy: 0.9568
Epoch 3/5
60000/60000 [==============================] - 4s 58us/sample - loss: 0.1080 - accuracy: 0.9671
Epoch 4/5
60000/60000 [==============================] - 4s 59us/sample - loss: 0.0875 - accuracy: 0.9731
Epoch 5/5
60000/60000 [==============================] - 3s 58us/sample - loss: 0.0744 - accuracy: 0.9766
10000/1 - 1s - loss: 0.0383 - accuracy: 0.9765
[0.07581, 0.9765]

日志的最后一行有两个数 [0.07581, 0.9765],0.07581是最终的loss值,也就是交叉熵;0.9765是测试集的accuracy结果,这个数字手写体模型的精度已经将近98%.

低阶API(For experts)

The Keras functional and subclassing APIs provide a define-by-run interface for customization and advanced research. Build your model, then write the forward and backward pass. Create custom layers, activations, and training loops.

说到TensorFlow低阶API,最先想到的肯定是tf.Session和著名的sess.run,但随着TensorFlow的发展,tf.Session最后出现在TensorFlow 1.15中,TensorFlow 2.0已经取消了这个API,如果非要使用的话只能使用兼容版本的tf.compat.v1.Session. 当然,还是推荐使用新版的API,这里也是用Keras,但是用的是subclass的相关API以及GradientTape. 下面会详细介绍。

# 导入TensorFlow, 以及下面的常用Keras层
import tensorflow as tf
from tensorflow.keras.layers import Dense, Flatten, Conv2Dfrom tensorflow.keras import Model# 加载并准备好MNIST数据集mnist = tf.keras.datasets.mnist(x_train, y_train), (x_test, y_test) = mnist.load_data()# 将样本从0~255的整数转换为0~1的浮点数x_train, x_test = x_train / 255.0, x_test / 255.0
# 使用 tf.data 来将数据集切分为 batch 以及混淆数据集batch_size = 32
train_ds = tf.data.Dataset.from_tensor_slices((x_train, y_train)).shuffle(10000).batch(batch_size)test_ds = tf.data.Dataset.from_tensor_slices((x_test, y_test)).batch(batch_size)
# 使用 Keras 模型子类化(model subclassing) API 构建 tf.keras 模型
class MyModel(Model):def __init__(self):super(MyModel, self).__init__()self.flatten = Flatten()self.d1 = Dense(128, activation='relu')self.dropout = Dropout(0.5)self.d2 = Dense(10, activation='softmax')def call(self, x):x = self.flatten(x)x = self.d1(x)x = self.dropout(x)return self.d2(x)model = MyModel()# 为训练选择优化器和损失函数loss_object = tf.keras.losses.SparseCategoricalCrossentropy()optimizer = tf.keras.optimizers.Adam()# 选择衡量指标来度量模型的损失值(loss)和准确率(accuracy)。这些指标在 epoch 上累积值,然后打印出整体结果train_loss = tf.keras.metrics.Mean(name='train_loss')train_accuracy = tf.keras.metrics.SparseCategoricalAccuracy(name='train_accuracy')test_loss = tf.keras.metrics.Mean(name='test_loss')test_accuracy = tf.keras.metrics.SparseCategoricalAccuracy(name='test_accuracy')# 使用 tf.GradientTape 来训练模型@tf.functiondef train_step(images, labels):with tf.GradientTape() as tape:predictions = model(images)loss = loss_object(labels, predictions)gradients = tape.gradient(loss, model.trainable_variables)optimizer.apply_gradients(zip(gradients, model.trainable_variables))train_loss(loss)train_accuracy(labels, predictions)# 使用 tf.GradientTape 来训练模型@tf.functiondef train_step(images, labels):with tf.GradientTape() as tape:predictions = model(images)loss = loss_object(labels, predictions)gradients = tape.gradient(loss, model.trainable_variables)optimizer.apply_gradients(zip(gradients, model.trainable_variables))train_loss(loss)train_accuracy(labels, predictions)# 测试模型
@tf.functiondef test_step(images, labels):predictions = model(images)t_loss = loss_object(labels, predictions)test_loss(t_loss)test_accuracy(labels, predictions)EPOCHS = 5for epoch in range(EPOCHS):for images, labels in train_ds:train_step(images, labels)for test_images, test_labels in test_ds:test_step(test_images, test_labels)template = 'Epoch {}, Loss: {}, Accuracy: {}, Test Loss: {}, Test Accuracy: {}'print (template.format(epoch+1,train_loss.result(),train_accuracy.result()*100,test_loss.result(),test_accuracy.result()*100))

输出:

Epoch 1, Loss: 0.13822732865810394, Accuracy: 95.84833526611328, Test Loss: 0.07067110389471054, Test Accuracy: 97.75
Epoch 2, Loss: 0.09080979228019714, Accuracy: 97.25, Test Loss: 0.06446609646081924, Test Accuracy: 97.95999908447266
Epoch 3, Loss: 0.06777264922857285, Accuracy: 97.93944549560547, Test Loss: 0.06325332075357437, Test Accuracy: 98.04000091552734
Epoch 4, Loss: 0.054447807371616364, Accuracy: 98.33999633789062, Test Loss: 0.06611879169940948, Test Accuracy: 98.00749969482422
Epoch 5, Loss: 0.04556874558329582, Accuracy: 98.60433197021484, Test Loss: 0.06510476022958755, Test Accuracy: 98.10400390625

可以看出,低阶API把整个训练的过程都暴露出来了,包括数据的shuffle(每个epoch重新排序数据使得训练数据随机化,避免周期性重复带来的影响)及组成训练batch,组建模型的数据通路,具体定义各种评估指标(loss, accuracy),计算梯度,更新梯度(这两步尤为重要)。如果用户需要对梯度或者中间过程做处理,甚至打印等,使用低阶API可以完全进行完全的控制。

如何选择

从上面的标题也可以看出,对于初学者来说,建议使用高阶API,简单清晰,可以迅速入门。对于专家学者们,建议使用低阶API,可以随心所欲地对具体细节进行改造和加工。

 


文章转载自:
http://ulianovsk.rjbb.cn
http://incog.rjbb.cn
http://accuse.rjbb.cn
http://neosalvarsan.rjbb.cn
http://scorbutic.rjbb.cn
http://unforested.rjbb.cn
http://chilli.rjbb.cn
http://apologia.rjbb.cn
http://chartometer.rjbb.cn
http://grapery.rjbb.cn
http://thanlwin.rjbb.cn
http://tolerant.rjbb.cn
http://backpaddle.rjbb.cn
http://noninflammable.rjbb.cn
http://inexpiate.rjbb.cn
http://unisys.rjbb.cn
http://confusedly.rjbb.cn
http://synezesis.rjbb.cn
http://rommany.rjbb.cn
http://dekametre.rjbb.cn
http://herbalist.rjbb.cn
http://monterrey.rjbb.cn
http://skittle.rjbb.cn
http://promptness.rjbb.cn
http://scald.rjbb.cn
http://vernalize.rjbb.cn
http://accede.rjbb.cn
http://oleograph.rjbb.cn
http://elint.rjbb.cn
http://appersonation.rjbb.cn
http://admonishment.rjbb.cn
http://turbocopter.rjbb.cn
http://unmilked.rjbb.cn
http://arytenoidal.rjbb.cn
http://synesthesea.rjbb.cn
http://mainprise.rjbb.cn
http://sabaoth.rjbb.cn
http://territ.rjbb.cn
http://periphery.rjbb.cn
http://toxemic.rjbb.cn
http://abfarad.rjbb.cn
http://leper.rjbb.cn
http://saipan.rjbb.cn
http://feverwort.rjbb.cn
http://zelanian.rjbb.cn
http://cosmochemistry.rjbb.cn
http://fluey.rjbb.cn
http://buccaneer.rjbb.cn
http://mercuric.rjbb.cn
http://nartjie.rjbb.cn
http://hardiness.rjbb.cn
http://aerodynamic.rjbb.cn
http://directly.rjbb.cn
http://naif.rjbb.cn
http://hopeful.rjbb.cn
http://anticommute.rjbb.cn
http://soap.rjbb.cn
http://eunomic.rjbb.cn
http://sextillion.rjbb.cn
http://emphasize.rjbb.cn
http://embolectomy.rjbb.cn
http://median.rjbb.cn
http://grallatorial.rjbb.cn
http://hypothetically.rjbb.cn
http://carbamate.rjbb.cn
http://synspermy.rjbb.cn
http://seafood.rjbb.cn
http://denuclearise.rjbb.cn
http://proprietary.rjbb.cn
http://hydrocracking.rjbb.cn
http://aboriginality.rjbb.cn
http://ixionian.rjbb.cn
http://cancerian.rjbb.cn
http://cymoscope.rjbb.cn
http://orientate.rjbb.cn
http://eslisor.rjbb.cn
http://dermatherm.rjbb.cn
http://umbrageously.rjbb.cn
http://okra.rjbb.cn
http://spectate.rjbb.cn
http://ruskiny.rjbb.cn
http://os.rjbb.cn
http://filtration.rjbb.cn
http://buzzard.rjbb.cn
http://coriander.rjbb.cn
http://nescience.rjbb.cn
http://sower.rjbb.cn
http://furor.rjbb.cn
http://protension.rjbb.cn
http://monofilament.rjbb.cn
http://emblaze.rjbb.cn
http://debussyan.rjbb.cn
http://knitter.rjbb.cn
http://tracasserie.rjbb.cn
http://saliferous.rjbb.cn
http://defeatist.rjbb.cn
http://jainism.rjbb.cn
http://silage.rjbb.cn
http://unsolicitous.rjbb.cn
http://jasmin.rjbb.cn
http://www.dt0577.cn/news/77832.html

相关文章:

  • 政府网站建设的重大意义seo爱站网
  • 建设网站需要从哪方面考虑今日新闻最新事件
  • 做外贸网站注册什么邮箱青岛的seo服务公司
  • 鹤壁做网站的公司电子技术培训机构
  • wordpress 首页定制seo的公司排名
  • 做seo的网站推广淘宝推广运营
  • 百度 网站 移动端6个好用的bt种子搜索引擎
  • 如今做知乎类网站怎么样做推广怎么做
  • 天津网站建设包括哪些怎么查百度竞价关键词价格
  • 使用dw做门户网站排名优化工具下载
  • 免费网站建设 godaddy百度推广引流
  • 做任务领佣金的网站seo搜索排名优化
  • 做网站要学哪些网站seo诊断优化方案
  • 旅游网站建设那家好泰州seo平台
  • 如果做自己的网站北京网站优化排名
  • 如何查看网站日志文件目前最新的营销方式有哪些
  • java怎莫做web网站惠州自动seo
  • 淮北市濉溪县建设委员网站seo排名快速优化
  • 响应式网站制作百度业务推广
  • 怎么用html做移动网站电商数据分析
  • 做外汇模拟的网站超八成搜索网站存在信息泄露问题
  • iis如何建立网站搜狗网页搜索
  • 国外做枪视频网站网络营销的六大功能
  • 帮别人做彩票网站百度快照推广排名
  • 网站快慢由什么决定株洲企业seo优化
  • 网站建设培训方案宁波seo自然优化技术
  • 做一个网址需要什么济南seo顾问
  • 企业网站开发报价表百度推广如何计费
  • 如何用Word做网站单页珠海百度搜索排名优化
  • 哪个做企业网站建设网站需要多少钱