本人渣渣一枚,最近在tensorflow中遇到以下问题:
先上一下代码,
图片1,加载文件中的参数,并将其值赋给常量(避免后期值被改变,渣渣只会这种操作,哭)
图片2,加载训练数据集
图片3,也就是有问题的地方。
具体问题如下:当我执行完图片3的代码后,再执行一次,结果就和第一次不一样,必须要在执行图片3之前再执行一次图片1才能使结果一致,见下图:
求指导,感谢!!!!!
附上全部代码:
coding: utf-8
In[1]:
import tensorflow as tf
import matplotlib.pyplot as plt
In[2]:
import Ipynb_importer
In[3]:
from core3 import *
In[5]:
with tf.Session() as sess:
ww,bb=load_weights('e:/python/savedata/','keep4',3)
w00=ww[0]
w01=ww[1]
w02=ww[2]
w03=ww[3]
b00=bb[0]
b01=bb[1]
b02=bb[2]
b03=bb[3]
sess.run(tf.global_variables_initializer())
w10=w00.eval()
w11=w01.eval()
w12=w02.eval()
w13=w03.eval()
b10=b00.eval()
b11=b01.eval()
b12=b02.eval()
b13=b03.eval()
w0=tf.constant(w10)
w1=tf.constant(w11)
w2=tf.constant(w12)
w3=tf.constant(w13)
b0=tf.constant(b10)
b1=tf.constant(b11)
b2=tf.constant(b12)
b3=tf.constant(b13)
In[8]:
X_train, y_train, X_test, y_test, train_x_mean, train_x_std,train_y_mean0,train_y_std=get_data('e:/Python/jupyter/fuxian/data/2_layer_tio2',percentTest=.2,random_state=42)
print(y_train)
print(X_train)
In[ ]:
with tf.Session() as sess:
x0=tf.convert_to_tensor(X_train)
x1=tf.cast(x0,tf.float32)
a1 = tf.sigmoid(tf.add(tf.matmul(x1, w0),b0))
b1 = tf.sigmoid(tf.add(tf.matmul(a1, w1),b1))
c1 = tf.sigmoid(tf.add(tf.matmul(b1, w2),b2))
y1p = tf.add(tf.matmul(c1, w3),b3)
y1=y1p.eval()
m=tf.reduce_mean(np.abs((y1-y_train)/y_train))*100
print(sess.run(m))
补充:
之后又尝试通过上图的代码一步一步找问题,在第一次执行和第二次执行的结果中,a1的值相同,b1的值不相同,但w0,w1的值是相同的,这又是为什么?求指导!!感谢!!