我正在尝试在python中开始使用TensorFlow,构建一个简单的前馈NN.我有一个类,它包含网络权重(在训练期间更新的变量,并且应该在运行时保持不变)和另一个训练网络的脚本,它获取训练数据,将它们分成批次并分批训练网络.当我尝试训练网络时,我收到一个错误,表明数据张量与NN张量不在同一个图中:
ValueError:Tensor("占位符:0",形状=(10,5),dtype = float32)必须与Tensor("windows/embedding/Cast:0",shape =(100232,50),dtype)相同的图形= FLOAT32).
培训脚本中的相关部分是:
def placeholder_inputs(batch_size, ner):
windows_placeholder = tf.placeholder(tf.float32, shape=(batch_size, ner.windowsize))
labels_placeholder = tf.placeholder(tf.int32, shape=(batch_size))
return windows_placeholder, labels_placeholder
with tf.Session() as sess:
windows_placeholder, labels_placeholder = placeholder_inputs(batch_size, ner)
logits = ner.inference(windows_placeholder)
Run Code Online (Sandbox Code Playgroud)
而网络类中的相关内容是:
class WindowNER(object):
def __init__(self, wv, windowsize=3, dims=[None, 100,5], reg=0.01):
self.reg=reg
self.windowsize=windowsize
self.vocab_size = wv.shape[0]
self.embedding_dim = wv.shape[1]
with tf.name_scope("embedding"):
self.L = tf.cast(tf.Variable(wv, trainable=True, name="L"), tf.float32)
with tf.name_scope('hidden1'):
self.W = tf.Variable(tf.truncated_normal([windowsize * self.embedding_dim, dims[1]],
stddev=1.0 / math.sqrt(float(windowsize*self.embedding_dim))),
name='weights')
self.b1 = tf.Variable(tf.zeros([dims[1]]), name='biases')
with tf.name_scope('output'):
self.U = …Run Code Online (Sandbox Code Playgroud)