Вы можете использовать tf.unstack
в outputs
, чтобы получить список «субтеноров», затем использовать tf.split
для каждого из них:
splitted_outputs = [tf.split(output, rate, axis=0) for output in tf.unstack(outputs, axis=0)]
Обратите внимание, что tf.unstack
можно использовать только таким образом, когда известен размер данного axis
, или в противном случае вам потребуется указать параметр num
.
Я бы настоятельно рекомендовал вместо этого использовать preg_quote () .
Знак $ должен быть экранирован сам по себе, поэтому
$tmpStr=preg_replace("/$$/", "\$", $tmpStr);
я бы также посоветовал посмотреть на addlashes вместо.
IIRC вы заменяете $ на $. Так что это должно быть $$
. Вы также можете попробовать
$tmpStr=preg_replace('/\$/', '\$', $tmpStr);
не правда ли, что PHP видит \ $ как $? Я не проверял это, это может выглядеть так:
php первый и заменяет ваш "/ \ $ /" на "/ $ /" тогда механизм preg делает свое дело ... к сожалению, $ является оператором регулярного выражения (я полагаю, что он соответствует концу строки?), поэтому он не находит $ -символы в вашем тексте, но будет
Я думаю, , что вам нужно сделать, это двукратно экранировать символ $ следующим образом:
$ tmpStr = preg_replace ("/ \ $ /", "\ $", $ tmpStr);
Также .. в этом случай, я бы просто использовал str_replace ()
Похоже, что ваша проблема связана с экранированием. Одинарные кавычки ('
) в PHP работают иначе, чем двойные кавычки ("
). Это очень похоже на Perl, где интерполяция переменных не происходит в строках с одинарными кавычками, а знак доллара ($
) не является метасимволом:
print "\$"; # prints $
print '\$'; # prints \$
Также, классы символов Perl упростят ваш код:
$tmpStr = preg_replace('/([?#^&*()$\\/])/', '\\\\$1', $tmpStr);