久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

tflearn與tensorflow結合之內建操作符

 AI量化實驗室 2023-10-12 發(fā)布于北京

tensorflow很強大,,很靈活,。但對于新手并不友好,主要不是復雜,,準確來說是繁瑣,。因為拆開一個個點來看,都不復雜,,就像積木似的,。

但每次為了拼一層,要做大量的事情,,就是太瑣碎了,。正因為如此,才有了tflearn,keras這樣的封裝,。keras原本是為theano封裝的,,theano本身就是一個高性能的矩陣運算庫,算不上深度學習庫,,后來又兼容的tensorflow,,CNTK等。

keras為了通用,,注定要封裝更多層次的抽象,,對于源碼理解就帶來了困難。而tflearn的粒度正好適中,,它就是為tensorflow而生,,而且它生成的結構也是tensor,用session.run是可以直接計算的。

本文理解一下tflearn內建的操作符,就是tensorlayer里號稱的中等程度的封裝,,其實tflearn也有,。

import tensorflow as tf
import tflearn

#這里下載并加載minist數據集
import tflearn.datasets.mnist as mnist
trainX, trainY, testX, testY = mnist.load_data(one_hot=True)

# 為演示效果,直接使用tersorflow的placeholder
with tf.Graph().as_default():
# 輸入,、輸出變量
   X = tf.placeholder("float", [None, 784])
Y = tf.placeholder("float", [None, 10])
#這里是參數,,就是WX+b
W1 = tf.Variable(tf.random_normal([784, 256]))
W2 = tf.Variable(tf.random_normal([256, 256]))
W3 = tf.Variable(tf.random_normal([256, 10]))
b1 = tf.Variable(tf.random_normal([256]))
b2 = tf.Variable(tf.random_normal([256]))
b3 = tf.Variable(tf.random_normal([10]))

# 下面就是一個多層感知器
   def dnn(x):
# TFlearn有一個prelu的激活函數
       x = tflearn.prelu(tf.add(tf.matmul(x, W1), b1))
tflearn.summaries.monitor_activation(x) # Monitor activation
       x = tflearn.prelu(tf.add(tf.matmul(x, W2), b2))
tflearn.summaries.monitor_activation(x) # Monitor activation
       x = tf.nn.softmax(tf.add(tf.matmul(x, W3), b3))
return x

net = dnn(X)

# tflearn提供的計算交叉熵損失的函數
   loss = tflearn.categorical_crossentropy(net, Y)

# tflearn提供的計算測試集準確性的函數
   acc = tflearn.metrics.accuracy_op(net, Y)

# 下面是優(yōu)化函數
   optimizer = tflearn.SGD(learning_rate=0.1, lr_decay=0.96, decay_step=200)
   step = tflearn.variable("step", initializer='zeros', shape=[])
optimizer.build(step_tensor=step)
optim_tensor = optimizer.get_tensor()

# 使用 TFLearn Trainer
   trainop = tflearn.TrainOp(loss=loss, optimizer=optim_tensor,
metric=acc, batch_size=128,
step_tensor=step)
   trainer = tflearn.Trainer(train_ops=trainop, tensorboard_verbose=0)
# Training for 10 epochs.
   trainer.fit({X: trainX, Y: trainY}, val_feed_dicts={X: testX, Y: testY},
n_epoch=10, show_metric=True)

這個粒度的封裝,其實很適合與tensorflow一起使用,,比那個tensorlayer好用太多,。

關于作者:魏佳斌,互聯網產品/技術總監(jiān),,北京大學光華管理學院(MBA),特許金融分析師(CFA),,資深產品經理/碼農。偏愛python,,深度關注互聯網趨勢,,人工智能,AI金融量化,。致力于使用最前沿的認知技術去理解這個復雜的世界,。

    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多