簡單的神經網路解決實際問題

2021-09-25 13:49:49 字數 2601 閱讀 2064

先描述一下我想解決的問題:檔案中儲存著乙個大約60000行的資料,有三列,分別是時間,人數,和流量需求。我需要僅僅根據著三列資料,判斷基站的開和關,**如下。

import numpy as np

import tensorflow as tf

import matplotlib.pyplot as plt

import data_processing

data = data_processing.load_data()

data = data.values.astype(np.float32)

np.random.shuffle(data)

sep = int(0.7*len(data))

train_data = data[:sep] # training data (70%)

test_data = data[sep:]

tf_input = tf.placeholder(tf.float32, [none, 3], "input")#佔地方用的

tfx = tf_input[:, :2]

tfy = tf_input[:, 2:]

w1=tf.variable(tf.random_normal([2,128],seed=1))#列的個數就代表神經原的個數

w2=tf.variable(tf.random_normal([128,128],seed=1))#列的個數代表輸出的個數

w3=tf.variable(tf.random_normal([128,128],seed=1))

w4=tf.variable(tf.random_normal([128,1],seed=1))

b1=tf.variable(tf.random_normal([1,128],seed=1))

b2=tf.variable(tf.random_normal([128,1],seed=1))

a=tf.matmul(tfx,w1)

a1=tf.tanh(a)

b=tf.matmul(a1,w2)

b1=tf.tanh(b)

c=tf.matmul(b1,w3)

c1=tf.tanh(c)

y=tf.matmul(c1,w4)

#loss = tf.losses.softmax_cross_entropy(onehot_labels=tfy, logits=y)

loss=tf.reduce_mean(tf.square(y-tfy))#利用均方誤差計算loss(相當於乙個損失函式)

#train_op=tf.train.gradientdescentoptimizer(0.001).minimize(loss)#0.001是學習率

#train_step=tf.train.momentumoptimizer(0.001).minimize(loss)#可使用這三個優化方法,可以試一

train_op=tf.train.adadeltaoptimizer(0.001).minimize(loss)

#train_op = tf.train.gradientdescentoptimizer(learning_rate=0.001)

with tf.session() as sess:

init_op=tf.global_variables_initializer()#初始化所有引數

sess.run(init_op)

#訓練模型

steps=60000

for i in range(steps):

batch_index = np.random.randint(len(train_data), size=16)#batch_index表示一下子餵給神經網路多少的資料

sess.run(train_op, )

if i%500==0:

total_loss=sess.run(loss,feed_dict=)

print("after %d training steps,loss on all data is %g"%(i,total_loss))

w1=tf.variable(tf.random_normal([2,128],seed=1))

#tf.random_normal函式:是符合正太分布的,在沒有特殊的要求下,均值是0,均方誤差是1

2表示輸入是兩列,128是神經元的個數。seed表示隨機生成的w1是固定不變的。這是神經網路的第一層

w2=tf.variable(tf.random_normal([128,128],seed=1))#列的個數代表輸出的個數

#這是神經網路的第二層,128個輸入,128個輸出,是全連線的。

w3=tf.variable(tf.random_normal([128,128],seed=1))

#這是神經網路的第三層,同理

w4=tf.variable(tf.random_normal([128,1],seed=1))#

用程式設計解決實際問題

在現實程式設計中,如果我們遇到了已經學過的演算法不適合解決的問題,該怎麼辦?其實很簡單,就是把控制流程和資料結構想清楚,然後用 實現就好了!在本章內我們就來看兩個例子。題目內容 這些錢及其理財收益僅僅用於你個人的日常生活消費 不買房 不買車 不置產,不用於大病 也不包括結婚生子的費用,只用來過日子。...

簡單的用於解決分類問題的神經網路

原理可以自己去看關於深度學習的網課,然後學習一下tensorflow的使用。看懂下面這段 你便學會了簡單的深度學習 import tensorflow as tf import numpy as np learning rate 0.001 學習率 batch size 8seed 23455 r ...

C語言 Switch語句解決實際問題

任務 include define price 12 此處以千千快遞為例,每千克貨物運費12rmb,定義常量巨集 int main printf 請輸入距離 千公尺 scanf f fdistance if fdistance 0 if fdistance 3000 else ffreight pr...