lilililizhan 2019-05-09 00:15 采纳率: 0%
浏览 2807
已结题

tensorflow中相同的代码,运行多次每次的结果都不相同?

本人渣渣一枚,最近在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的值是相同的,这又是为什么?求指导!!感谢!!

  • 写回答

2条回答 默认 最新

  • threenewbee 2019-05-09 09:04
    关注

    global_variables_initializer() 这个会将权重设置成随机值,你后面又没有再训练,所以结果就是随机的了。

    评论

报告相同问题?

悬赏问题

  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型