學習進度筆記 TensorFlow基本知識總結 1

2022-05-24 07:57:10 字數 2829 閱讀 1566

tensorflow是全面的深度學習框架支援非常全面不是專門為客戶端設計

特點:1、真正的可移植性: 引入各種計算裝置的支援包括cpu/gpu/tpu,以及能夠很好地執行在移動端, 如安卓裝置、ios、樹莓派等等

2、多語言支援: tensorflow 有乙個合理的c++使用介面,也有乙個易用的python使用介面來構建和 執行你的graphs,你可以直接寫python/c++程式。

3、高度的靈活性與效率: tensorflow是乙個採用資料流圖(data flow graphs),用於數值計算的開源軟體庫 能夠靈活進行組裝圖,執行圖。隨著開發的進展,tensorflow的效率不算在提高

4、支援:tensorflow 由谷歌提供支援,谷歌投入了大量精力開發 tensorflow,它希望 tensorflow 成為機器學習研究人員和開發人員的通用語言

圖的建立:

tf.graph()

使用新建立的圖

g = tf.graph()

with g.as_default():

a = tf.constant(1.0)

assert c.graph is g

圖預設已經註冊,一組表示 tf.operation計算單位的物件和tf.tensor 表示操作之間流動的資料單元的物件

獲取呼叫: tf.get_default_graph() op、sess或者tensor 的graph屬性

執行tensorflow操作圖的類,使用預設註冊的圖(可以指定執行圖) 會話資源 會話可能擁有很多資源,

如 tf.variable,tf.queuebase 和tf.readerbase,會話結束後需要進行資源釋放 sess = tf.session() sess.run(...) sess.close()

使用上下文管理器 with tf.session() as sess: sess.run(...) config=tf.configproto(log_device_placement=true)

互動式:tf.interactivesession()

run(fetches, feed_dict=none,graph=none) 執行ops和計算tensor 巢狀列表,元組, namedtuple,dict或ordereddict(過載的運算子也能執行)

feed_dict 允許呼叫者覆蓋圖中指定張量的值,提供給 placeholder使用

返回值異常

runtimeerror:如果它session處於無效狀態(例如已關閉)。

typeerror:如果fetches或feed_dict鍵是不合適的型別。

valueerror:如果fetches或feed_dict鍵無效或引用 tensor不存在。

import

tensorflow as tf

import

osos.environ[

'tf_cpp_min_log_level

']='2'

#建立一張圖包含了一組op和tensor,上下文環境

#op:只要使用tensorflow的api定義的函式都是op

#tensor:就指代的是資料

g =tf.graph()

print

(g)with g.as_default():

c = tf.constant(11.0)

print

(c.graph)

#實現乙個加法運算

a = tf.constant(5.0)

b = tf.constant(6.0)

sum1 =tf.add(a, b)

#預設的這張圖,相當於是給程式分配一段記憶體

graph =tf.get_default_graph()

print

(graph)

#不是op不能執行

var1 = 2.0

#var2 = 3

#sum2 = var1 + var2

#有過載的機制,缺省會給運算子過載成op型別

sum2 = a +var1

print

(sum2)

#s = tf.session()##

s.run()

#s.run()

#s.close()

#只能執行乙個圖, 可以在會話當中指定圖去執行

#只要有會話的上下文環境,就可以使用方便eval()

#訓練模型

#實時的提供資料去進行訓練

#placeholder是乙個佔位符,feed_dict乙個字典

plt = tf.placeholder(tf.float32, [2, 3, 4])

print

(plt)

with tf.session(config=tf.configproto(log_device_placement=true)) as sess:

#print(sess.run(plt, feed_dict=))

#print(sum1.eval())

print

(a.graph)

print("

---------")

print

(a.shape)

print

(plt.shape)

print("

-------")

print

(a.name)

print("

-------")

print(a.op)

view code

學習進度筆記

學習進度筆記26 分類演算法 分類演算法屬於監督式學習,使用類標籤已知的樣本建立乙個分類函式或分類模型,應用分類模型,能把資料庫中的類標籤未知的資料進行歸類。分類在資料探勘中是一項重要的任務,目前在商業上應用最多,常見的典型應用場景有流失 精確營銷 客戶獲取 個性偏好等。mllib 目前支援分類演算...

學習進度筆記

學習進度筆記24 讀取檔案演示 import org.apache.spark.sparkconf import org.apache.spark.streaming.import org.apache.spark.streaming.streamingcontext.object fileword...

學習進度筆記

學習進度筆記16 scala語言學習 object testmap def ttt f int int unit val r f 10 println r val f0 x int x x 定義了乙個方法 def m0 x int int 傳遞進來的引數乘以10 x 10 將方法轉換成函式,利用了神...