Tensorflow 如何学习字段描述和可能类别之间的关系

Tensorflow 如何学习字段描述和可能类别之间的关系,tensorflow,Tensorflow,我有一个产品之间的关系,看起来像这样 是一种正确的方法,因此我的模型可以了解产品(左列)和类别(右列)中文本之间的关系,然后能够预测给定产品描述的未来类别?Seq2Seq基本上有两个不同的递归神经网络连接在一起: 接收输入文本标记的编码器RNN和基于编码器RNN的输出开始生成文本标记的解码器RNN。它是一个序列到一个序列网络。但在我看来,你的情况是,输入是一个序列,输出是一个基于输入的类别。您最好尝试使用LSTM网络,该网络通过嵌入层获取输入序列,然后将LSTM的最后一个隐藏状态传递到密集层进

我有一个产品之间的关系,看起来像这样


是一种正确的方法,因此我的模型可以了解产品(左列)和类别(右列)中文本之间的关系,然后能够预测给定产品描述的未来类别?

Seq2Seq
基本上有两个不同的递归神经网络连接在一起: 接收输入
文本标记
的编码器RNN和基于编码器RNN的输出开始生成
文本标记
的解码器RNN。它是一个序列到一个序列网络。但在我看来,你的情况是,输入是一个序列,输出是一个基于输入的类别。您最好尝试使用
LSTM
网络,该网络通过
嵌入层
获取输入序列,然后将
LSTM
的最后一个
隐藏状态
传递到
密集层
进行分类

适用于您的用例的LSTM模型:

输入和输出的占位符 嵌入层 LSTM层 最终致密层
这应该是你的模型

谢谢你看这个。不确定“输出是基于输入的类别”是什么意思。我已经定义了所有类别(输出),我希望网络了解输入描述和类别(输出)文本之间的关系。抱歉,不清楚。Read it has
每个输出都属于您定义的一个类别,而不是序列。好的,我应该试试。将查找示例并了解如何使用该层中的类别文本来帮助网络做出正确的预测。非常感谢。我会调查/研究并回来。你能给我举个“然后将LSTM的最后一个隐藏状态传递到致密层”的例子吗?我一直在阅读你的建议,不知道在哪里添加密集层,以及如何将LSTM的输出连接到密集层……我没有网站。我是新来的,找不到一个地方可以添加我的电子邮件,但我想twitter联系人会显示出来。
# input batch of text sequences of length `seq_length`
X = tf.placeholder(tf.int32, [None, seq_length], name='input')

# Output class labels 
y = tf.placeholder(tf.float32, [None], name='labels')
# For every word in your vocab you need a embedding vector. 
# The below weights are not trainable as we will `init` with `pre-trained` embeddings. If you dont want to do that set it to True.
W = tf.get_variable(initializer=tf.random_uniform([vocab_size, embedding_size]), name='embed', trainable=False)

# Get the embedding representation of the inputs
embed = tf.nn.embedding_lookup(W, X)
# Create basic LSTMCell, with number of hidden units as a input param
def lstm_cell():
  return tf.contrib.rnn.BasicLSTMCell(n_hidden) 

# Create a stack of LSTM cells (if you need)
stacked_lstm = tf.contrib.rnn.MultiRNNCell([lstm_cell() for _ in range(n_layers)])

# Create a dynamic RNN to handle the sequence of inputs
output, _ = tf.nn.dynamic_rnn(stacked_lstm, x, dtype=tf.float32)

# get the output of the last hidden state
last_hidden = output[:, -1, :]
# output dimension should be `n_classes`.
logits = dense_layer(last_hidden ...)