Tensorflow中placeholder传入值与feed_dict喂食器的联系与用法
1.placeholder傳入值
可以理解為提前占據(jù)一個存儲空間,比如說你在一個城市中心買了一套房子,這個房子你也不知道是用來放貨物還是用來住人的,但是你可以提前將這棟房子買下來,等以后再說以后的事情。
tf.placeholder(type,shape)?? ,像是 a = tf.placeholder(tf.float32,[2,3],keep_prob:0.5)
第一個參數(shù)tf.float32是a的類型
第二個參數(shù)[2,3]是要輸入的矩陣的維數(shù),即輸入一個兩行三列的矩陣
第三個參數(shù) keep_prob 是設(shè)置神經(jīng)元被選中的概率,在初始化是keep_prob是一個占位符keep_prob = tf.placeholder(tf.float32),但是在神經(jīng)網(wǎng)絡(luò)run時設(shè)置具體的值,像是keep_prob:0.5,即隨機(jī)選取一半的神經(jīng)元進(jìn)行激活,在不同的訓(xùn)練過程中隨機(jī)扔掉一部分神經(jīng)元,也就是讓某個神經(jīng)元的激活值以一定的概率p,讓其停止工作,這次訓(xùn)練過程中不更新權(quán)值,也不參加神經(jīng)網(wǎng)絡(luò)的計算。但是它的權(quán)重得保留下來(只是暫時不更新而已),因為下次樣本輸入時它可能又得工作了。
示意圖如下:
2.feed_dict喂食器
在這里我的理解是將要輸入的數(shù)據(jù)直接喂入placeholder傳入值中,但是不是什么數(shù)據(jù)類型都可以喂入,比如說剛才我在placeholder傳入值的時候設(shè)定是float型和維度為兩行三列的矩陣,那么必須要喂入符合要求的矩陣,要不然會出錯,比如能吃一個饅頭,你讓人家吃兩個或吃半個都不好對吧
3.廢話不多說,直接上例子
# -*- coding: utf-8 -*-
"""
Created on Sat Mar 17 20:35:14 2018@author: DuYanfang
"""import tensorflow as tf
a = tf.placeholder(tf.int32)
b = tf.placeholder(tf.int32)
c= tf.multiply(a,b)
with tf.Session() as sess:print(sess.run(c,feed_dict = {a:100,b:200}))x1 = tf.placeholder(tf.float32,[2,3])
x2 = tf.placeholder(tf.float32,[3,2])
x3 = tf.matmul(x1,x2)
with tf.Session() as sess:print(sess.run(x3,feed_dict = {x1:[[1,2,3],[4,5,6]],x2:[[1,2],[3,4],[5,6]]}))
運(yùn)行結(jié)果:
20000 [[ 22. 28.][ 49. 64.]]總結(jié)
以上是生活随笔為你收集整理的Tensorflow中placeholder传入值与feed_dict喂食器的联系与用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL常见备份与恢复方案
- 下一篇: 使用object detection训练