问题
File "D:\Software\anaconda3-5.0\envs\ame\lib\site-packages\tensorflow_core\python\framework\op_def_registry.py", line 38, in register_op_list
% (op_def.name, _registered_ops[op_def.name], op_def))
ValueError: Registered op_def for CudnnRNN (name: "CudnnRNN"
input_arg {
name: "input"
type_attr: "T"
}
input_arg {
name: "input_h"
type_attr: "T"
}
input_arg {
name: "input_c"
type_attr: "T"
}
input_arg {
name: "params"
type_attr: "T"
}
output_arg {
name: "output"
type_attr: "T"
}
output_arg {
name: "output_h"
type_attr: "T"
}
output_arg {
name: "output_c"
type_attr: "T"
}
output_arg {
name: "reserve_space"
type_attr: "T"
}
attr {
name: "T"
type: "type"
allowed_values {
list {
type: DT_HALF
type: DT_FLOAT
type: DT_DOUBLE
}
}
}
attr {
name: "rnn_mode"
type: "string"
default_value {
s: "lstm"
}
allowed_values {
list {
s: "rnn_relu"
s: "rnn_tanh"
s: "lstm"
s: "gru"
}
}
}
attr {
name: "input_mode"
type: "string"
default_value {
s: "linear_input"
}
allowed_values {
list {
s: "linear_input"
s: "skip_input"
s: "auto_select"
}
}
}
attr {
name: "direction"
type: "string"
default_value {
s: "unidirectional"
}
allowed_values {
list {
s: "unidirectional"
s: "bidirectional"
}
}
}
attr {
name: "dropout"
type: "float"
default_value {
f: 0.0
}
}
attr {
name: "seed"
type: "int"
default_value {
i: 0
}
}
attr {
name: "seed2"
type: "int"
default_value {
i: 0
}
}
attr {
name: "is_training"
type: "bool"
default_value {
b: true
}
}
is_stateful: true
) not equal to op_def to register (name: "CudnnRNN"
input_arg {
name: "input"
type_attr: "T"
}
input_arg {
name: "input_h"
type_attr: "T"
}
input_arg {
name: "input_c"
type_attr: "T"
}
input_arg {
name: "params"
type_attr: "T"
}
output_arg {
name: "output"
type_attr: "T"
}
output_arg {
name: "output_h"
type_attr: "T"
}
output_arg {
name: "output_c"
type_attr: "T"
}
output_arg {
name: "reserve_space"
type_attr: "T"
}
attr {
name: "T"
type: "type"
allowed_values {
list {
type: DT_FLOAT
}
}
}
attr {
name: "rnn_mode"
type: "string"
default_value {
s: "lstm"
}
allowed_values {
list {
s: "rnn_relu"
s: "rnn_tanh"
s: "lstm"
s: "gru"
}
}
}
attr {
name: "input_mode"
type: "string"
default_value {
s: "auto_select"
}
allowed_values {
list {
s: "linear_input"
s: "skip_input"
s: "auto_select"
}
}
}
attr {
name: "direction"
type: "string"
default_value {
s: "unidirectional"
}
allowed_values {
list {
s: "unidirectional"
s: "bidirectional"
}
}
}
attr {
name: "dropout"
type: "float"
default_value {
f: 0.0
}
}
attr {
name: "seed"
type: "int"
default_value {
i: 0
}
}
attr {
name: "seed2"
type: "int"
default_value {
i: 0
}
}
attr {
name: "is_training"
type: "bool"
default_value {
b: true
}
}
is_stateful: true
)
解决方案
在op_def_registery中加入如下
from tensorflow.contrib.cudnn_rnn.ops import gen_cudnn_rnn_ops