initializer = tf.compat.v1.random_uniform_initializer() self.dense1_mul = dense(self.state, dense1_size, weight_init=initializer((-1 / tf.sqrt(tf.cast(tf.float32(self.state_dims), tf.float32))), 1 / tf.sqrt(tf.cast(tf.float32(self.state_dims), tf.float32))), scope='dense1') TypeError: 'DType' object is not callable
时间: 2024-03-12 21:45:47 浏览: 125
96.tf.Variable和 tf.get_variable()1
这个错误可能是由于调用了一个数据类型(DType)对象,而不是一个初始化器对象造成的。可以尝试修改代码中的以下部分:
```
initializer = tf.compat.v1.random_uniform_initializer()
self.dense1_mul = dense(self.state, dense1_size, weight_init=initializer((-1 / tf.sqrt(tf.cast(tf.float32(self.state_dims), tf.float32))), 1 / tf.sqrt(tf.cast(tf.float32(self.state_dims), tf.float32))), scope='dense1')
```
改成:
```
initializer = tf.compat.v1.random_uniform_initializer()
self.dense1_mul = dense(self.state, dense1_size, weight_init=lambda: initializer((-1 / tf.sqrt(tf.cast(tf.float32(self.state_dims), tf.float32))), 1 / tf.sqrt(tf.cast(tf.float32(self.state_dims), tf.float32))), scope='dense1')
```
这里使用了一个 lambda 表达式,将初始化器对象包装成一个可调用的函数。
阅读全文