如今有了神经收集的数据流图。把我们所看到的都转换为代码,结不雅是:
- # Network Parameters
- n_hidden_1 = 10 # 1st layer number of features
- n_hidden_2 = 5 # 2nd layer number of features
- n_input = total_words # Words in vocab
- n_classes = 3 # Categories: graphics, space and baseball
- def multilayer_perceptron(input_tensor, weights, biases):
- layer_1_multiplication = tf.matmul(input_tensor, weights['h1'])
- layer_1_addition = tf.add(layer_1_multiplication, biases['b1'])
- layer_1_activation = tf.nn.relu(layer_1_addition)
- # Hidden layer with RELU activation
- layer_2_multiplication = tf.matmul(layer_1_activation, weights['h2'])
- layer_2_addition = tf.add(layer_2_multiplication, biases['b2'])
- layer_2_activation = tf.nn.relu(layer_2_addition)
- # Output layer with linear activation
- out_layer_multiplication = tf.matmul(layer_2_activation, weights['out'])
- out_layer_addition = out_layer_multiplication + biases['out']return out_layer_addition
(我们将会在后面评论辩论输出层的激活函数)
神经统??么进修
数据集
就像我们前面看到的那样,神经收集练习时会更新权重值。如今我们将看到在 TensorFlow 情况下这是怎么产生的。
tf.Variable
权重和误差存储在变量(tf.Variable)中。这些变量经由过程调用 run() 保持在图中的状况。在机械进修中我们一般经由过程 正太分布 来启动权重和误差值。
- weights = {
- 'h1': tf.Variable(tf.random_normal([n_input, n_hidden_1])),
- 'h2': tf.Variable(tf.random_normal([n_hidden_1, n_hidden_2])),
- 'out': tf.Variable(tf.random_normal([n_hidden_2, n_classes]))
- }
- biases = {
- 'b1': tf.Variable(tf.random_normal([n_hidden_1])),
- 'b2': tf.Variable(tf.random_normal([n_hidden_2])),
- 'out': tf.Variable(tf.random_normal([n_classes]))
- }
当我们第一次运行神经收集的时刻(也就是说,权重值是由正态分布定义的):
那么,你若何 开辟直觉进修,并实现懂得机械进修这个目标?一个很好的办法是创建机械进修模型。
推荐阅读
【引自IamOkay的博客】 iOS在Apple公司的强迫请求下,数据传输必须按照ATS(App Transefer Security)条目。关于AFNetworking框架传输HTTPS数据。一.AllowsArbitraryLoads 白名单机制NSAll>>>详细阅读
本文标题:图解机器学习:神经网络和TensorFlow的文本分类
地址:http://www.17bianji.com/lsqh/34909.html
1/2 1