【TensorFlow】01 TensorFlow簡介與Python基礎

      網友投稿 756 2025-04-09

      TensorFlow簡介與Python基礎


      2018.9.10

      一、概述

      TF使用數據數據流圖進行數值計算,亮點是支持異構設備分布式計算機

      常用的ML庫有MXNet Torch/Pytorch Theano CNTK Caffe等

      0階張量(純量),1階張量(向量),2階張量(矩陣)tensor(張量) flow(流動)

      編程模式 命令式編程(Torch) 符號式編程(Tensorflow,theano 描述算法流程 放到其他語言執行)

      TF使用數據流圖來進行編程 是一種推斷結構

      TF的高層庫()如Kearas(對用戶友好,模塊化)

      Deep-learning主要的運算是浮點運算

      TF的亮點之一是autograph模式

      TF的功能:設計、訓練、部署(唯一一個形成完整生態的ML sys)

      二、環境配置

      虛擬環境的安裝

      使用pip命令安裝venv

      sudo?pip?install?virtualenv

      cd 項目目錄 切換到項目所在的目錄

      激活虛擬環境

      virtualenv?--system-site-packages?venv

      退出venv

      deactivate

      5、查看venv環境的python包版本

      pip?freeze

      三、科學工具和流程

      編譯語言C,C++,Fortran 快,優化好,但語法不友好

      腳本語言: Matlab 開發友好,收費,基礎語言缺乏

      R語言 偏向統計,不能完成所有的任務

      高級的pyhton shell:IPython,Jupyter

      python包:

      Numpy:強大的數值對象操作

      Scipy:高級的數據處理程序 (優化、回歸差值等)

      Matplotlib:2D可視化 (不可交互,對3D圖像支持不好)

      四、python基礎

      (一)數據類型

      python的變量類型不像C++一樣在定義時必須制定參數的變量類型,是一種動態語言

      Python可以處理任意大小(沒有大小限制)的正負整數,使用0x作為前綴表示十六進制

      按照科學計數法表示的數字,比如1.23e9代表.23*e^9$

      由于儲存方式不同,整數永遠是精確的,但是浮點數可以四舍五入

      字符串是以單引號或者雙引號括起來的任意文本

      如果字符串里有很多字符需要轉義,為簡化可以使用r'',引號內的字符串默認不轉義

      print('\\t\')

      \???\

      print(r'\\t\')

      \\t\

      boolean只有True和false兩種,其結果可由比較運算,邏輯運算得出(and,or,not)

      當兩個變量比較時,如果給定的變量值小于100,則使用is運算的得到的兩個變量所得bool結果為true,否則為false(這是由于python在儲存同一個變量是當變量的數值小于100是使用同一塊內存,而大于100是則不使用同一塊內存)

      a?=?1000b?=?1000print(a?is?b) print(id(a),id(b))

      False4526894320?4526894960

      a?=?100b?=?100print(a?is?b) print(id(a),id(b))

      True4305331680?4305331680

      (二)字符串

      在python保存源代碼是,需要制定保存為UTF-8編碼,當解釋器讀取時,在開頭加上這兩行文字(第一行告訴Unix系統這是一個python可執行程序,win會忽略這個注釋,第二行是告訴編譯器以utf-8的方式讀取,否則中文不能正常編碼):

      #!/usr/bin/env?python3#-*-?coding:?utf-8?-*-

      在Python中,格式化方式與C相同,使用%實現。%s表示用字符串替換,%d表示用整數替換,有幾個%?后面就需要跟幾個變量或值,當變量大于2時需要用括號括起來,有一個的話可以省略

      print("Hi,my?name?is?%s,?I'm?%d?years?old."%('Alex',10))

      Hi,my?name?is?Alex,?I'm?10?years?old.

      (三)循環

      for x in ...就是把每個元素帶入變量x,然后執行縮進塊的語句

      names?=?['A','B','C']for?name?in?names: ????print(name)

      AB C

      使用range(n)可以生成一個迭代器,其值是0 ~ n-1

      sum?=?0for?i?in?range(101): ????sum?=?sum?+?i print(sum)

      5050

      使用while循環打印100以內所有奇數的和:

      sum?=?0n?=?99while?n>0: ????sum?=?sum?+?n ????n?=?n?-?2print(sum)

      2500

      (四)Python數據結構

      list是有序的集合,可以隨時刪除和添加元素

      classlist?=?['class1','class2','class3'] len(classlist)??#使用len可以獲得列表的長度classlist[0]?#使用下標可以訪問list的元素(以0開始)classlist[-1]?#使用負下標可以訪問倒數的元素

      'class3'

      列表的插入

      classlist.append('class4')??#尾插法print(classlist) classlist.insert(1,'class5')?#指定索引插入print(classlist)

      ['class1',?'class2',?'class3',?'class4'] ['class1',?'class5',?'class2',?'class3',?'class4']

      列表的刪除

      classlist.pop()??#如果pop不加參數,則刪除最后一個,否則按照索引順序刪除print(classlist)

      ['class1',?'class5',?'class2',?'class3']

      注意:

      list中的元素數據類型可以不同

      list中可以有另外的list

      list中一個元素也沒有,則其長度為0

      元組的另一名稱為有序列表,一旦初始化就不能修改,沒有append和pop方法

      tuple存在的意義在于tuple不可變,所以代碼更安全,如果可能,盡量用tuple代替list

      當定義只有一個元素的tuple時,需要將這個元素后面加上一個逗號,因為()可能會產生歧義。Python規定單獨出現的小括號內容計算結果使其本身。

      t?=?(1,)??#是(1,)而不是(1)print(t)

      (1,)

      注意:

      要創建一個內容也不變的tuple必須保證tuple中的每一個元素本身不能變(不允許出現tuple中嵌套list的情況)

      dict使用鍵-值(key-value)存儲,具有很快的查找速度

      dic?=?{'A':95,'B':80,'C':75} print(dic['A'])

      95

      修改dic某個key的值:

      dic['A']=60print(dic['A'])

      60

      對比list與dict:

      dict:查找插入速度快,不會因為key的增加而變慢,但浪費內存多

      list:查找插入時間隨著元素的增加而增加,但占用空間小,浪費內存少

      注意:

      dic是一種用空間換時間的存儲結構(hash)

      key必須是不可變的對象

      set與dict類似,是key的集合,但不存儲value,沒有重復的key

      重復的元素在set中被自動過濾掉:

      s?=?set([1,1,2,2,3,3]) print(s)

      {1,?2,?3}

      其他方法:

      add(key)可以添加元素到set中

      【TensorFlow】01 TensorFlow簡介與Python基礎

      remove(key)可以刪除set中的元素

      集合操作:

      s1?=?set([1,2,3]) s2?=?set([2,3,4]) print(s1&s2) print(s1|s2)

      {2,?3} {1,?2,?3,?4}

      (五)切片

      L?=?['Michael',?'Sarah',?'Tracy',?'Bob',?'Jack']

      取得前三個元素:

      L?=?['Michael',?'Sarah',?'Tracy',?'Bob',?'Jack'] print(L[:3])?? #L[0:3]表示,從索引0開始取,直到索引3為止,但不包括索引3。即索引0,1,2,正好是3個元素#如果第一索引是0,可以省略

      ['Michael',?'Sarah',?'Tracy']

      也可以負切片(記住倒數第一個元素的索引是?-1):

      L[-2:]

      ['Bob',?'Jack']

      前10個數,每兩個取一個(第3個參數n為步長,代表隔n個數取出一個):

      L?=?list(range(100))>>>?L[::5] [0,?5,?10,?15,?20,?25,?30,?35,?40,?45,?50,?55,?60,?65,?70,?75,?80,?85,?90,?95]

      [0,?5,?10,?15,?20,?25,?30,?35,?40,?45,?50,?55,?60,?65,?70,?75,?80,?85,?90,?95]

      (五)jupyter使用

      魔法命令

      import?numpy?as?np

      np.reshape????#在命令后加??可以查看對應命令的幫助文檔

      File?"",?line?2 ????np.reshape????#在命令后加??可以查看對應命令的幫助文檔 ??????????????^SyntaxError:?invalid?syntax

      a?=[1,3,5]

      %run?my_file.py??#百分號后面的為魔法命令,可以執行非python的內容

      %whos??#魔法命令:查看變量

      %ls?#支持大部分下的Linux命令%pwd

      %timeit?a????#使用timeit監測性能

      for?item?in?[1,3,5]: ????print(item)

      for?item?in?range(10):?????#range()可以生成迭代器,等價于range(0,10) ????print(item)

      -------------------------------------------

      本文轉自XuAn97916博客51CTO博客

      TensorFlow 深度學習 python

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Excel表格回歸直線怎么制作?
      下一篇:C#三十一 序列化與反序列化
      相關文章
      亚洲精品美女久久久久| 亚洲第一区在线观看| 黑人大战亚洲人精品一区| 亚洲第一综合天堂另类专 | 色拍自拍亚洲综合图区| 国产国拍亚洲精品mv在线观看 | 亚洲美女在线观看播放| 亚洲AV无码成人精品区蜜桃| 日韩亚洲人成在线综合日本| 亚洲av永久无码精品古装片| 亚洲av永久无码精品古装片 | 久久精品亚洲一区二区三区浴池 | 亚洲?V无码乱码国产精品| 国产精品亚洲专区在线播放| 亚洲JIZZJIZZ中国少妇中文| 亚洲AV日韩精品一区二区三区| 青青青亚洲精品国产| 亚洲精品高清一二区久久| 亚洲无码高清在线观看| 中文亚洲成a人片在线观看| 国产亚洲人成网站在线观看| 亚洲精品高清国产一线久久| 亚洲va国产va天堂va久久| 亚洲久本草在线中文字幕| 亚洲色偷偷av男人的天堂| 亚洲日本乱码一区二区在线二产线| 亚洲人成电影院在线观看| 77777亚洲午夜久久多喷| 亚洲国产av玩弄放荡人妇| 亚洲AV成人潮喷综合网| 亚洲精品无码永久中文字幕| 国产亚洲精品国产| 亚洲视频.com| 亚洲人成网站看在线播放| 亚洲日本天堂在线| 亚洲成a人无码av波多野按摩| 亚洲成电影在线观看青青| 亚洲av无码片在线观看| 亚洲欧美日韩久久精品| 亚洲AV日韩精品一区二区三区| 国产日产亚洲系列|