Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python &引用;类型错误:';类型';对象不可下标";执行sess.run()时_Python_Tensorflow_Neural Network_Deep Learning - Fatal编程技术网

Python &引用;类型错误:';类型';对象不可下标";执行sess.run()时

Python &引用;类型错误:';类型';对象不可下标";执行sess.run()时,python,tensorflow,neural-network,deep-learning,Python,Tensorflow,Neural Network,Deep Learning,为了更好地说明我的问题,我在此使用一个非常简单的回归模型(即使通过梯度下降,也要运行1秒) 我想使用一个类reg\u model()来包含我的模型。但是当我在下面的代码中运行时,我得到了一个错误TypeError:“type”对象是不可下标的 错误来自于sess.run([reg_model['train_step'],reg_model['mean_square_loss']),feed_dict={x:training_set_输入,yLb:training_set_输出})。如果我将此代码

为了更好地说明我的问题,我在此使用一个非常简单的回归模型(即使通过梯度下降,也要运行1秒)

我想使用一个类
reg\u model()
来包含我的模型。但是当我在下面的代码中运行时,我得到了一个错误
TypeError:“type”对象是不可下标的

错误来自于sess.run([reg_model['train_step'],reg_model['mean_square_loss']),feed_dict={x:training_set_输入,yLb:training_set_输出})。如果我将此代码修改为
sess.run([train\u step,mean\u square\u loss],feed\u dict={x:training\u set\u inputs,yLb:training\u set\u outputs})
,然后删除定义
class reg\u model():
,那么我的代码工作得很好

但是我确实想使用
reg\u model()
来存储模型,这样它本身就可以是一个定义良好的对象。如何修改代码以实现这一点

import tensorflow as tf
import numpy as np

# values of training data
training_set_inputs =np.array([[0,1,2],[0,0,2],[1,1,1],[1,0,1]])
training_set_outputs =np.array([[1],[0],[1],[0]])

learning_rate = 0.5

class reg_model():

# containers and operations
    x = tf.placeholder(tf.float32, [None, 3])
    W = tf.Variable(tf.zeros([3, 1]))
    B = tf.Variable(tf.zeros([1]))

    yHat = tf.nn.sigmoid(tf.matmul(x, W) + B)
    yLb = tf.placeholder(tf.float32, [None, 1])

    mean_square_loss = tf.reduce_mean(tf.square(yLb - yHat)) 

    train_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(mean_square_loss)

# use session to execute graphs
with tf.Session() as sess:
    init=tf.global_variables_initializer()
    sess.run(init)

    # start training
    for i in range(10000):
        sess.run([reg_model['train_step'], reg_model['mean_square_loss']], feed_dict={x: training_set_inputs, yLb: training_set_outputs})

    # do prediction
    x0=np.float32(np.array([[0.,1.,0.]]))   
    y0=tf.nn.sigmoid(tf.matmul(x0,W) + B)

    print('%.15f' % sess.run(y0))

您应该使用
reg\u模型、训练步数
reg\u模型、均方损失
,而不是
reg\u模型['train\u step']
reg\u模型['mean\u square\u loss']