thank you for your answer.
I solved this error but
you already worry about gradient print none value.
I check my gradient eigenvalue,eigenvector(s_f.grad,v_f.grad).
only print none value.
so I consider more backward about symeig.
I studied about "Covariance Pooling for Facial Expression Recognition
"
this paper offered tensorflow code.

  
      github.com
  
  
    d-acharya/CovPoolFER/blob/master/conv_feature_pooling/src/models/covpoolnet.py 1
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import tensorflow as tf
import tensorflow.contrib.slim as slim

def inference(images, keep_probability, phase_train=True, bottleneck_layer_size=7, weight_decay=0.0, reuse=None, batch_size=128):
    batch_norm_params={
        'decay':0.995,
        'epsilon':0.001,
        'updates_collections':None,
        'variables_collections':[tf.GraphKeys.TRAINABLE_VARIABLES]
    }
    with slim.arg_scope([slim.conv2d, slim.fully_connected],
        weights_initializer=tf.truncated_normal_initializer(stddev=0.1),
        weights_regularizer=slim.l2_regularizer(weight_decay),
        normalizer_fn=slim.batch_norm,
        normalizer_params=batch_norm_params):
        return network(images, is_training=phase_train,dropout_keep_prob=keep_probability,bottleneck_layer_size=bottleneck_layer_size, batch_size)


  This file has been truncated. show original

  
  
    
    
  
  


every thing changed pytorch.
but just problemed om symeig.
any other idea about symeig do not get gradient?
thank you for your answer again.
-James