-
1、輕量級
2、python語言進行編寫
訓(xùn)練步驟:
1、下載數(shù)據(jù)集
2、編寫訓(xùn)練程序
3、訓(xùn)練模型
4、驗證訓(xùn)練的模型
調(diào)用步驟
1、使用訓(xùn)練好的模型
2、定義參數(shù)
3、通過端進行傳參(web前端頁面、繪圖儀、手寫板)
4、數(shù)據(jù)驗證并返回
暴露接口
可以使用TensorFlow Serving部署成grpc模式的接口
flask
整合步驟
1、訓(xùn)練生成模型
2、暴露接口
3、前端調(diào)用
4、驗證并返回結(jié)果
查看全部 -
完成了使用flask創(chuàng)建api接口,調(diào)用訓(xùn)練好的網(wǎng)絡(luò)
進行網(wǎng)頁端的手寫數(shù)字識別
查看全部 -
通過鏈接前端的界面
實現(xiàn)了卷積神經(jīng)網(wǎng)絡(luò)實時分類輸入的手寫數(shù)字
使用(255-x)/255將0到255的值轉(zhuǎn)化到0到1之間
查看全部 -
在flask中注冊api的url
來調(diào)用訓(xùn)練好的模型
@app.route('/api/mnist',?methods=['post']) def?mnist(): ????input?=?((255?-?np.array(request.json,?dtype=np.uint8))?/?255.0).reshape(1,?784) ????output1?=?regression(input) ????output2?=?convolutional(input) ????return?jsonify(results=[output1,?output2]) if?__name__?==?'__main__': ????app.run()查看全部 -
完成卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練
with?tf.Session()?as?sess: ????merged_summary_op?=?tf.summary.merge_all() ????summary_writer?=?tf.summary.FileWriter('/tmp/mnist_log/1',?sess.graph) ????summary_writer.add_graph(sess.graph) ????sess.run(tf.global_variables_initializer()) ????for?i?in?range(20000): ????????batch?=?data.train.next_batch(50) ????????if?i?%?100?==?0: ????????????train_accuracy?=?accuracy.eval(feed_dict={x:?batch[0],?_y:?batch[1],?keep_prob:?1.0}) ????????????print("step?%d,?train?accuracy=%d"?%?(i,?train_accuracy)) ????????sess.run(train_step,?feed_dict={x:?batch[0],?_y:?batch[1],?keep_prob:?0.5}) ????????print(sess.run(accuracy,?feed_dict={x:?data.test.images,?_y:?data.test.labels,?keep_prob:?1.0})) ????????path?=?saver.save(sess,?os.path.join(os.path.dirname(__file__),?'data',?'convalution.ckpt'), ??????????????????????????write_meta_graph=False,?write_state=False) ????????print("Saved:",?path)查看全部 -
在卷積層中調(diào)用模型文件
from?mnist?import?model data?=?read_data_sets('MNIST_data',?one_hot=True) with?tf.variable_scope('convolutional'): ????x?=?tf.placeholder(tf.float32,?[None,?784]) ????keep_prob?=?tf.placeholder(tf.float32) ????y,?variables?=?model.convolutional(x,keep_prob) _y?=?tf.placeholder(tf.float32,?[None,?10]) cross_entropy?=?-tf.reduce_sum(_y?*?tf.log(y)) train_step?=?tf.train.AdamOptimizer(1e-4).minimize(cross_entropy) correct_prediction?=?tf.equal(tf.argmax(y,?1),?tf.argmax(_y,?1)) accuracy?=?tf.reduce_mean(tf.cast(correct_prediction,?tf.float32)) saver=tf.train.Saver(variables) with?tf.Session()?as?sess: ????merged_summary_op?=?tf.summary.merge_all() ????summary_writer?=?tf.summary.FileWriter('/tmp/mnist_log/1',?sess.graph) ????summary_writer.add_graph(sess.graph)查看全部 -
完成剩余的卷積神經(jīng)網(wǎng)絡(luò)模型
W_conv2?=?weight_variable([5,?5,?32,?64]) b_conv2?=?bias_variable([64]) h_conv2?=?tf.nn.relu(conv2d(h_pool1,?W_conv2)?+?b_conv2) h_pool2?=?max_pool_2x2(h_conv2) W_fc1?=?weight_variable([7?*?7?*?64,?1024]) b_fc1?=?bias_variable([1024]) h_pool2_flat?=?tf.reshape(h_pool2,?[-1,?7?*?7?*?64]) h_fc1?=?tf.nn.relu(tf.matmul(h_pool2_flat,?W_fc1)?+?b_fc1) h_fc1_drop?=?tf.nn.dropout(h_fc1,?keep_prob) W_fc2?=?weight_variable([1024,?10]) b_fc2?=?bias_variable([10]) y?=?tf.nn.softmax(tf.matmul(h_fc1_drop,?W_fc2)?+?b_fc2) return?y,?[W_conv1,?b_conv1,?W_conv2,?b_conv2,?W_fc1,?b_fc1,?W_fc2,?b_fc2]
查看全部 -
簡單構(gòu)建cnn的網(wǎng)絡(luò)
def?convolutional(x,?keep_prob): ????def?conv2d(x,?W): ????????return?tf.nn.conv2d([1,?1,?1,?1],?padding='SAME') ????def?max_pool_2x2(x): ????????return?tf.nn.max_pool(x,?ksize=[1,?2,?2,?1],?strides=[1,?2,?2,?1],?padding='SAME') ????def?weight_variable(shape): ????????initial?=?tf.truncated_normal(shape,?stddev=0.1) ????????return?tf.Variable(initial) ????def?bias_variable(shape): ????????initial?=?tf.constant(0.1,?shape=shape) ????????return?tf.Variable(initial) ????x_image?=?tf.reshape(x,?[-1,?28,?28,?1]) ????W_conb1?=?weight_variable([5,?5,?1,?32]) ????b_conv1?=?bias_variable([32]) ????h_conv1?=?tf.nn.relu(conv2d(x_image,?W_conb1)?+?b_conv1) ????h_pool1?=?max_pool_2x2(h_conv1)
查看全部 -
完成線性模型的構(gòu)建
import?tensorflow?as?tf import?os from?tensorflow.contrib.learn.python.learn.datasets.mnist?import?read_data_sets from?mnist?import?model data?=?read_data_sets('MNIST_data',?one_hot=True) with?tf.variable_scope('regression'): ????x?=?tf.placeholder(tf.float32,?[None,?784]) ????y,?variables?=?model.regression(x) _y?=?tf.placeholder('float',?[None,?10]) cross_entropy?=?-tf.reduce_sum(_y?*?tf.log(y)) train_step?=?tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy) correct_prediction?=?tf.equal(tf.argmax(y,?1),?tf.argmax(_y,?1)) accuracy?=?tf.reduce_mean(tf.cast(correct_prediction,?tf.float32)) saver=tf.train.Saver(variables) with?tf.Session()?as?sess: ????sess.run(tf.global_variables_initializer()) ????for?_?in?range(1000): ????????batch_xs,batch_ys=data.train.next_batch(100) ????????sess.run(train_step,feed_dict={x:batch_xs,_y:batch_ys}) ????print(sess.run(accuracy,feed_dict={x:data.test.images,_y:data.test.labels})) ????path=saver.save(sess,os.path.join(os.path.dirname(__file__),'data','regression.ckpt'),write_meta_graph=False,write_state=False) ????print('Saver:'+path)最終保存了訓(xùn)練好的模型
查看全部 -
進行模型的構(gòu)建
先是線性模型
import?tensorflow?as?tf from?tensorflow.contrib.learn.python.learn.datasets.mnist?import?read_data_sets from?mnist?import?model data?=?read_data_sets('MNIST_data',?one_hot=True) with?tf.variable_scope('regression'): ????x?=?tf.placeholder(tf.float32,?[None,?784]) ????y,?variables?=?model.regression(x) _y?=?tf.placeholder('float',?[None,?10]) cross_entropy?=?-tf.reduce_sum(_y?*?tf.log(y)) train_step?=?tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy) correct_prediction?=?tf.equal(tf.argmax(y,?1),?tf.argmax(_y,?1)) accuracy?=?tf.reduce_mean(tf.cast(correct_prediction,?tf.float32))查看全部 -
使用tensorflow提供的函數(shù)來
下載官方的mnist數(shù)據(jù)集
查看全部 -
flask一種輕量的web框架
?訓(xùn)練好模型
使用flask來調(diào)用模型
查看全部 -
mnist數(shù)據(jù)集是手寫數(shù)字?jǐn)?shù)據(jù)集
包含0到9的手寫數(shù)字圖片
可以用來訓(xùn)練深度學(xué)習(xí)網(wǎng)絡(luò)
查看全部 -
tensorflow是一個深度學(xué)習(xí)庫
支持cnn rnn lstm等
可以實現(xiàn)語音識別和圖像識別
查看全部 -
將人工智能與現(xiàn)有的技術(shù)相結(jié)合
可以進一步提高使用體驗
tensorflow與flask結(jié)合
查看全部 -
MNIST
查看全部 -
整合步驟。
查看全部 -
MNIST查看全部
-
MNIST
查看全部 -
TensorFlow
查看全部 -
人工智能。
查看全部 -
(@#%&*_/)1358694270查看全部
-
訓(xùn)練步驟查看全部
-
MNIST數(shù)據(jù)集
查看全部 -
怎么沒人呢
查看全部 -
我就過來看看
查看全部 -
1.首先使用mnist來input數(shù)據(jù),之后建立模型,調(diào)用模型,訓(xùn)練模型,把模型結(jié)果保存,然后在main.py中把模型拿出來取用,然后前端傳進來之后調(diào)用模型。
2.還可以引申來分類一些圖像,分類一些動物,做自然語言處理,來做一個聊天機器人,或者訓(xùn)練生成古詩詞,都可以使用上面的方法。我們只要把模型訓(xùn)練好之后,通過Flask調(diào)用模型載入進來,白鷺給API的接口,供我們后期的使用。
查看全部 -
1.啟動之后需要調(diào)用,如何調(diào)用呢?需要編寫一個前端界面。
2.寫好前端頁面之后需要將index.html和main.py綁定。
@app.route('/') ????# 將index.html和main.py綁定
def main():
????return render_template('index.html')
3.在這個項目中,數(shù)據(jù)是如何傳遞的呢以及如何進行交互的呢?
數(shù)據(jù)在前端界面輸入后,先傳到main.js,使用data來進行轉(zhuǎn)換格式和傳到后臺,調(diào)用模型之后把結(jié)果放到output1和output2,打包成json格式返回給前端,展示。
查看全部
舉報