gpt4 book ai didi

python - "TypeError: ' 执行 sess.run() 时键入 ' object is not subscriptable"

转载 作者:太空宇宙 更新时间:2023-11-04 04:17:02 25 4
gpt4 key购买 nike

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

我想使用类 reg_model() 来包含我的模型。但是当我运行下面的代码时,我得到了错误 TypeError: 'type' object is not subscriptable

错误来自 sess.run([reg_model['train_step'], reg_model['mean_square_loss']], feed_dict={x: training_set_inputs, yLb: training_set_outputs})。如果我将此代码修改为 sess.run([train_step, mean_square_loss], feed_dict={x: training_set_inputs, yLb: training_set_outputs}),然后删除定义 class reg_model():,那么我的代码运行良好。

但我真的很想用reg_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_model.train_stepreg_model.mean_square_loss,而不是 reg_model['train_step']reg_model['mean_square_loss ']

关于python - "TypeError: ' 执行 sess.run() 时键入 ' object is not subscriptable",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55213607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com