Нет никакой разницы в точности между a+b
и tf.add(a, b)
. Первый выводит на a.__add__(b)
, который отображается на tf.add
с помощью после строки в math_ops.py
_OverrideBinaryOperatorHelper(gen_math_ops.add, "add")
Единственная разница это имя узла в базовом графе add
вместо Add
. Вы можете вообще сравнивать вещи, глядя на базовое представление Графа, подобное этому
tf.reset_default_graph()
dtype = tf.int32
a = tf.placeholder(dtype)
b = tf.placeholder(dtype)
c = a+b
print(tf.get_default_graph().as_graph_def())
. Вы также можете увидеть это непосредственно, проверив метод __add__
. Существует дополнительный уровень косвенности, потому что это замыкание, но вы можете получить базовую функцию следующим образом:
real_function = tf.Tensor.__add__.im_func.func_closure[0].cell_contents
print(real_function.__module__ + "." + real_function.__name__)
print(tf.add.__module__ + "." + tf.add.__name__)
И вы увидите вывод ниже, что означает, что они называют одну и ту же базовую функцию
tensorflow.python.ops.gen_math_ops.add
tensorflow.python.ops.gen_math_ops.add
Вы можете видеть из tf.Tensor.OVERLOADABLE_OPERATORS
, что следующие специальные методы Python потенциально перегружены соответствующими версиями TensorFlow
{'__abs__',
'__add__',
'__and__',
'__div__',
'__floordiv__',
'__ge__',
'__getitem__',
'__gt__',
'__invert__',
'__le__',
'__lt__',
'__mod__',
'__mul__',
'__neg__',
'__or__',
'__pow__',
'__radd__',
'__rand__',
'__rdiv__',
'__rfloordiv__',
'__rmod__',
'__rmul__',
'__ror__',
'__rpow__',
'__rsub__',
'__rtruediv__',
'__rxor__',
'__sub__',
'__truediv__',
'__xor__'}
Эти методы описаны в ссылке Python 3.3.7 : эмуляция числовых типов. Обратите внимание, что модель данных Python не предоставляет способ перегрузить оператор присваивания =
, поэтому назначение всегда использует встроенную реализацию Python.
TeX работает, определяя ящики. Эти поля содержат любой видимый материал: символы, изображения, другие поля и т. Д. И задача программного обеспечения для верстки состоит в том, чтобы разместить эти поля на странице в соответствии с анализом содержимого (чтобы добавить разрывы строк) или директивами, данными пользователь.
Итак, что вы хотите:
1. превратить список комитетов в блок
2. расположить этот блок где-нибудь на строке
Первое задание выполнено окружением minipage
. Эта среда имеет один обязательный аргумент, ширину мини-страницы и несколько необязательных аргументов, которые здесь не актуальны. Министраницы являются одной из наиболее полезных функций латекса для точного управления набором текста.
Задача 2 выполняется путем добавления клея (пробел) вокруг коробки. Я использовал \hspace{len}
для добавления пробела фиксированной длины, но другие команды могут быть полезны в зависимости от того, что вы хотите: \hfill
, чтобы переместить рамку в правую часть страницы, \begin{center}...\end{enter}
, чтобы центрировать рамку и т. Д.
\documentclass[12pt]{report}
\usepackage[top=1in, bottom=1in, left=1.5in, right=1in]{geometry}% change margin size
\usepackage{graphicx}
\usepackage{textgreek}
\usepackage{setspace} % for double spacing pakage
\begin{document}
\begin{titlepage}
\begin{center}
\vspace*{0cm} % moving title a little lower
\doublespacing
{\textsc{Growth and Characterization of and doped $\beta-Ga_{2}O_{3}$ }}\\
by\\
XXXX Mia
%\Large{\textbf{Internal Assessment}}\\
\vfill % vertical spacing maker automatically
\end{center}
\begin{center}
A dissertation submitted to the Graduate Council of\\
XXXX University in partial fulfillment\\
of the requirements for the degree of\\ Doctor of Philosophy\\
with a Major in Material Science, Engineering and Commercialization\\
\today
\end{center}
\vfill
\hspace{10cm}%
\begin{minipage}{0.2\linewidth}
\doublespacing
Committee Members: \\
\indent Prof. xx, Chair\\
\indent Larson \\
\indent Hanks \\
\indent Wilhelmus \\
\indent Chen\\
\end{minipage}
%\indent $ \today$
\end{titlepage}
\end{document}