codeforbetter谷歌开发者之声——tensorflow与深度学习(代码片段)

whispar whispar     2023-03-16     415

关键词:

目录

一、TensorFlow简介

二、机器学习与深度学习

2.1 什么是机器学习

2.2  什么是深度学习

2.3 机器学习和深度学习应用

2.4 趋势

三、TensorFlow实现递归神经网络


一、TensorFlow简介

    TensorFlow 是由 Google 团队开发的深度学习框架之一,它是一个完全基于 Python 语言设计的开源的软件。TensorFlow 的初衷是以最简单的方式实现机器学习和深度学习的概念,它结合了计算代数的优化技术,使它便计算许多数学表达式。 

    TensorFlow 可以训练和运行深度神经网络,它能应用在许多场景下,比如,图像识别、手写数字分类、递归神经网络、单词嵌入、自然语言处理、视频检测等等。TensorFlow 可以运行在多个 CPU 或 GPU 上,同时它也可以运行在移动端操作系统上(如安卓、IOS 等),它的架构灵活,具有良好的可扩展性,能够支持各种网络模型(如OSI七层和TCP/IP四层)。

TensorFlow官方网站有两个,访问其中一个就可以,它们分别如下 :

TensorFlow有以下重要功能 -

  • 它包含一个叫做张量概念,用来创建多维数组,优化和计算数学表达式。
  • 它包括深度神经网络和机器学习技术的编程支持。
  • 它包括具有各种数据集的高可扩展计算功能。

二、机器学习与深度学习

2.1 什么是机器学习

通常,为了实现人工智能,我们使用机器学习。我们有几种算法用于机器学习。例如:

Find-S算法,决策树算法(Decision trees),随机森林算法(Random forests),人工神经网络

通常,有3种类型的学习算法:

1,监督机器学习算法用于进行预测。此外,该算法搜索分配给数据点的值标签内的模式。

2,无监督机器学习算法:没有标签与数据点相关联。这些ML算法将数据组织成一组簇。此外,它需要描述其结构,使复杂的数据看起来简单,有条理,便于分析。

3,增强机器学习算法:我们使用这些算法来选择动作。此外,我们可以看到它基于每个数据点。一段时间后,算法改变其策略以更好地学习。

2.2  什么是深度学习

机器学习只关注解决现实问题。它还需要更加智能的一些想法。机器学习通过旨在模仿人类决策能力的神经网络。ML工具和技术是关键的两个深度学习的窄子集,我们需要用他们来解决需要思考的问题。任何深度神经网络都将包含三种类型的图层:

输入层     隐藏层        输出层

我们可以说深度学习是机器学习领域的最新领域。这是实现机器学习的一种方式。

2.3 机器学习和深度学习应用

计算机视觉: 我们将其用于车牌识别和面部识别等不同应用。

信息检索: 我们将ML和DL用于搜索引擎,文本搜索和图像搜索等应用程序。

营销:我们在自动电子邮件营销和目标识别中使用这种学习技术。

医疗诊断:它在医学领域也有广泛的应用。癌症鉴定和异常检测等应用。

自然语言处理:适用于情感分析,照片标签,在线广告等应用。

2.4 趋势

如今,机器学习和数据科学正处于趋势中。在公司中,对它们的需求正在迅速增加。对于希望在其业务中集成机器学习而生存的公司而言,他们的需求尤其大。

深度学习被发现,并证明拥有最先进的表演技术。因此,深度学习让我们感到惊讶,并将在不久的将来继续这样做。

最近,研究人员不断探索机器学习和深度学习。过去,研究人员仅限于学术界。但是,如今,机器学习和深度学习的研究正在两个行业和学术界中占据一席之地。

三、TensorFlow实现递归神经网络

     递归神经网络是一种面向深度学习的算法,遵循顺序方法。在神经网络中,我们总是假设每个输入和输出都独立于所有其他层。这些类型的神经网络称为循环,因为它们以顺序方式执行数学计算,考虑以下步骤来训练递归神经网络 -

第1步 - 从数据集输入特定示例。
第2步 - 网络将举例并使用随机初始化变量计算一些计算。
第3步 - 然后计算预测结果。
第4步 - 生成的实际结果与期望值的比较将产生错误。
第5步 - 为了跟踪错误,它通过相同的路径传播,其中也要调整变量。
第6步 - 重复从1到5的步骤,直到声明获得输出的变量正确定义。
第7步 - 通过应用这些变量来获得新的看不见的输入来进行系统预测。

表示递归神经网络的示意方法如下所述 :

第1步  TensorFlow包括用于循环神经网络模块的特定实现的各种库。 

#Import necessary modules
from __future__ import print_function

import tensorflow as tf
from tensorflow.contrib import rnn
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("/tmp/data/", one_hot = True)

第2步  使用递归神经网络对图像进行分类,将每个图像行视为像素序列。MNIST图像形状具体定义为28 * 28像素。现在将为所提到的每个样本处理28个序列和28个步骤。定义输入参数以完成顺序模式。

n_input = 28 # MNIST data input with img shape 28*28
n_steps = 28
n_hidden = 128
n_classes = 10

# tf Graph input
x = tf.placeholder("float", [None, n_steps, n_input])
y = tf.placeholder("float", [None, n_classes]
weights = 
   'out': tf.Variable(tf.random_normal([n_hidden, n_classes]))

biases = 
   'out': tf.Variable(tf.random_normal([n_classes]))

第3步  使用RNN中定义的函数计算结果以获得最佳结果。这里,将每个数据形状与当前输入形状进行比较,并计算结果以保持准确率。

def RNN(x, weights, biases):
   x = tf.unstack(x, n_steps, 1)

   # Define a lstm cell with tensorflow
   lstm_cell = rnn.BasicLSTMCell(n_hidden, forget_bias=1.0)

   # Get lstm cell output
   outputs, states = rnn.static_rnn(lstm_cell, x, dtype = tf.float32)

   # Linear activation, using rnn inner loop last output
   return tf.matmul(outputs[-1], weights['out']) + biases['out']

pred = RNN(x, weights, biases)

# Define loss and optimizer
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits = pred, labels = y))
optimizer = tf.train.AdamOptimizer(learning_rate = learning_rate).minimize(cost)

# Evaluate model
correct_pred = tf.equal(tf.argmax(pred,1), tf.argmax(y,1))
accuracy = tf.reduce_mean(tf.cast(correct_pred, tf.float32))

# Initializing the variables
init = tf.global_variables_initializer()


第4步  在此步骤中,将启动图形以获得计算结果。也有助于计算测试结果的准确性。

with tf.Session() as sess:
   sess.run(init)
   step = 1
   # Keep training until reach max iterations

   while step * batch_size < training_iters:
      batch_x, batch_y = mnist.train.next_batch(batch_size)
      batch_x = batch_x.reshape((batch_size, n_steps, n_input))
      sess.run(optimizer, feed_dict=x: batch_x, y: batch_y)

      if step % display_step == 0:
         # Calculate batch accuracy
         acc = sess.run(accuracy, feed_dict=x: batch_x, y: batch_y)

         # Calculate batch loss
         loss = sess.run(cost, feed_dict=x: batch_x, y: batch_y)

         print("Iter " + str(step*batch_size) + ", Minibatch Loss :.6f".format(loss) + ", Training Accuracy= :.5f".format(acc))
      step += 1
   print("Optimization Finished!")
      test_len = 128
   test_data = mnist.test.images[:test_len].reshape((-1, n_steps, n_input))

   test_label = mnist.test.labels[:test_len]
   print("Testing Accuracy:", \\
      sess.run(accuracy, feed_dict=x: test_data, y: test_label))


上面的屏幕截图显示了生成的输出 。

毫不夸张得说,TensorFlow的流行让深度学习门槛变得越来越低,只要你有Python和机器学习基础,入门和使用神经网络模型变得非常简单。TensorFlow支持Python和C++两种编程语言,再复杂的多层神经网络模型都可以用Python来实现。

codeforbetter谷歌开发者之声——googlecloud谷歌云(代码片段)

...Platform(谷歌云平台)一、零售行业二、线上课堂CodeForBetter,愿Google越来越好一、GoogleCloud是什么谷歌云平台(GoogleCloudPlatform)是谷歌所提供的一套公有云计算服务。该平台包括一系列在Google硬件上运行的用... 查看详情

codeforbetter谷歌开发者之声——我与android同成长

前言:2022Google开发者大会9月14日即将开幕,而这时候社区又推出了第二趴“谷歌开发者之声”征文活动,奖品实在是太诱人了,不得不说谷歌对于开发者的支持力度还是很大的。作为Android手机系统的资深体验用... 查看详情

codeforbetter谷歌开发者之声——tensorflow与深度学习(代码片段)

目录一、TensorFlow简介二、机器学习与深度学习2.1什么是机器学习2.2 什么是深度学习2.3机器学习和深度学习应用2.4趋势三、TensorFlow实现递归神经网络一、TensorFlow简介  TensorFlow是由Google团队开发的深度学习框架之一,它是一... 查看详情

google“共码未来“—2022谷歌开发者大会参会记录(代码片段)

2022谷歌开发者大会回忆录大会名称:GoogleDeveloperSummitChina2022大会主题:共码未来(CODEFORBETTER)文章目录前言Part01主旨演讲Part02展示区互动体验Part03GoogleCloud技术演讲(1)了解AlloyDB(2)reCAPT 查看详情

去谷歌开发者大会了,收“获”满满(代码片段)

去谷歌开发者大会了,收“获”满满多图预警,请耐心等待加载周四去上海参加了谷歌开发者大会,收获满满。下面我就当个导游,带大家畅游一番吧。先来到世博中心,显眼的GoogleLogo入场后先报道,领... 查看详情

spring笔记--事务管理之声明式事务

事务简介:    事务管理是企业级应用开发中必不可少的技术,主要用来确保数据的完整性和一致性,    事务:就是一系列动作,它们被当作一个独立的工作单元,这些动作要么全部完成,要么全部不起作用.Spring中使用事务: ... 查看详情

数据库事务之声明式事务

一、事务概述    1、在JavaEE企业级开发的应用领域,为了保证数据的完整性和一致性,必须引入数据库事务的概念,所以事务管理是企业级应用程序开发中必不可少的技术。    2、事务就是一组由于... 查看详情

艺术编程-技术之声第十期(代码片段)

艺术编程-技术之声第十期技术未来:1.怎样写出漂亮整洁的代码2.技术大牛的养成指南,成长鸡汤3.小公司的前端应该怎么做4.阿里感悟-怎么判断一个人是否聪明5.美团点评SQL优化工具SQLAdvisor开源6.7大Python深度学习框架哪... 查看详情

Java 之声:设置控件的持久性是啥?

】Java之声:设置控件的持久性是啥?【英文标题】:Javasound:what\'sthepersistenceofsetcontrols?Java之声:设置控件的持久性是什么?【发布时间】:2009-02-1017:53:57【问题描述】:Hiya-仍处于应用程序的设计阶段,并且想知道关于“端口... 查看详情

艺术编程-技术之声第七期(代码片段)

艺术编程-技术之声第七期技术未来:1.见龙在田万象出渊|十三五软件规划解读(软件定义制造系列031)2.我回阿里的29个月3.高性能Web架构技术之声:1.从浏览器到服务端的中文乱码深入分析2.携程如何从海量数据... 查看详情

艺术编程-技术之声第12期(代码片段)

艺术编程-技术之声第12期技术未来:1.创业起步期,应该如何做技术选型?2.完美的代码只是一个幻想罢了3.创业团队技术Leader应该尽量避免的9个错误4.深度学习在美团点评中的应用技术之声:1.淘宝商品详情平台... 查看详情

艺术编程-技术之声第9期(代码片段)

艺术编程-技术之声第9期技术未来:1.摩拜CEO:失败了,就当做公益吧2.关爱脸盲,人人有责3.如何买到一辆适合车震的二手车?技术之声:1.ASM:一个低调成功者的自述2.聊聊Java平台上的非Java语言3.如何... 查看详情

voc客户之声的价值与八爪鱼的实践

01.什么是客户之声?客户之声(VoiceoftheCustomer,简称VoC)是消费者对于品牌、产品、服务等内容的反馈。根据国际知名研究机构Forrester的定义:“公司通过VoC项目收集和分析客户反馈,找到客户体验提升方... 查看详情

voc客户之声的价值与八爪鱼的实践

01.什么是客户之声?客户之声(VoiceoftheCustomer,简称VoC)是消费者对于品牌、产品、服务等内容的反馈。根据国际知名研究机构Forrester的定义:“公司通过VoC项目收集和分析客户反馈,找到客户体验提升方... 查看详情

艺术编程-技术之声第13期(代码片段)

艺术编程-技术之声第13期技术未来:1.解决分布式系统的一致性问题,我们需要了解哪些理论?2.IntelliJIDEA新版发布,有这些新特性3.MySQL性能优化】MySQL常见SQL错误用法4.程序员,这是你想要的技术leader吗?... 查看详情

艺术编程-技术之声第十一期(代码片段)

艺术编程-技术之声第十一期技术未来:1.国外的公司都是如何「处理」大龄程序员的?2.NASA计划后,阿里又透露了在强化学习领域的布局3.StitchFix的创新和突破——用数据的心智经营公司4.微信和支付宝的“补贴大战... 查看详情

spring(十五)之声明式事务

声明式事务管理方法允许你在配置的帮助下而不是源代码硬编程来管理事务。这意味着你可以将事务管理从事务代码中隔离出来。你可以只使用注释或基于配置的XML来管理事务。bean配置会指定事务型方法。下面是与声明式事务... 查看详情

打卡google2022开发者大会

...大会,并收获满满。大会开幕本次大会以“共码未来CodeforBetter”为主题,围绕Google在数字创新领 查看详情