tensorflow - tensorflow 的 DynamicAttentionWrapper 模块问题
问题描述
我指的是Kaggle 笔记本。看起来下面的代码应该适用于 Tensorflow 1.1。在使用任何最新版本的 Tensorflow 运行此程序时,我收到以下错误:
“AttributeError:模块‘tensorflow.contrib.seq2seq’没有属性‘DynamicAttentionWrapper’”
所以我将DynamicAttentionWrapper修改为AttentionWrapper。现在我收到另一个错误说明:“ new () 缺少 3 个必需的位置参数:'time'、'alignments' 和 'alignment_history'”
dec_cell = tf.contrib.seq2seq.DynamicAttentionWrapper(dec_cell,
attn_mech,
rnn_size)
initial_state = tf.contrib.seq2seq.DynamicAttentionWrapperState(enc_state[0],
_zero_state_tensors(rnn_size,
batch_size,
tf.float32))
有人可以在这里帮助我。
所以我修改了
# Build the graph
train_graph = tf.Graph()
# Set the graph to default to ensure that it is ready for training
with train_graph.as_default():
# Load the model inputs
input_data, targets, lr, keep_prob, summary_length, max_summary_length, text_length = model_inputs()
# Create the training and inference logits
training_logits, inference_logits = seq2seq_model(tf.reverse(input_data, [-1]),
targets,
keep_prob,
text_length,
summary_length,
max_summary_length,
len(vocab_to_int)+1,
rnn_size,
num_layers,
vocab_to_int,
batch_size)
# Create tensors for the training logits and inference logits
# Step 1
training_logits = tf.identity(training_logits.rnn_output, 'logits')
# Step 2
inference_logits = tf.identity(inference_logits.sample_id, name='predictions')
# Create the weights for sequence_loss
masks = tf.sequence_mask(summary_length, max_summary_length, dtype=tf.float32, name='masks')
with tf.name_scope("optimization"):
# Loss function
cost = tf.contrib.seq2seq.sequence_loss(
training_logits,
targets,
masks)
# Optimizer
optimizer = tf.train.AdamOptimizer(learning_rate)
# Gradient Clipping
gradients = optimizer.compute_gradients(cost)
capped_gradients = [(tf.clip_by_value(grad, -5., 5.), var) for grad, var in gradients if grad is not None]
train_op = optimizer.apply_gradients(capped_gradients)
print("Graph is built.")
解决方案
推荐阅读
- sql - 平均重做使用情况查询
- python - 使用 pd.DataFrame.join() 将多个 txt 文件加入一个文件
- python - 附加以虚拟数组开头的二维数组
- ios - 从正在运行的 iOS / macOS 应用程序实例(Xamarin Forms)获取资源文件夹路径的正确方法是什么
- java - 如何使用 Android 中的广播接收器每 2 分钟更新一次活动?
- azure-cosmosdb - 查询嵌套数组长度 COSMOS DB 的总和
- python - 在 Azure 上应该如何处理 Python 虚拟环境?
- html - 仅 CSS - 多个元素的宽度相同,基于最大的
- python - Chrome 无法启动:使用 Docker 运行我的测试时异常退出
- excel - 通过 Power Automate 自动删除 ActiveX 控件?