Разница между страницами «Machine Learning with TensorFlow Book» и «JDK»

Материал из Home Wiki
(Различия между страницами)
Перейти к навигации Перейти к поиску
 
 
Строка 1: Строка 1:
[[:Категория:Работа]]
= Reference: Weak, Soft, Phantom, Strong =


Machine Learning with TensorFlow Book by Nishant Shukla
https://habr.com/ru/post/169883/


https://github.com/BinRoot/TensorFlow-Book/
= Memory =
<gallery>
Memory diagram.png|
</gallery>


= Chapter 1 =
https://stackoverflow.com/questions/10209952/what-is-the-purpose-of-the-java-constant-pool
= 1.4.1 Supervised learning =


Descrete with few values - Classifier
= Java Memory Model (JSR 133) - лучшее  =


Many values and the values have natural order - Regressor
https://habrahabr.ru/company/golovachcourses/blog/221133/


= 1.4.2. Unsupervised learning =
= Анализ GC логов =


Clustering is the process of splitting the data into individual buckets of similar items.
https://blog.gceasy.io/2016/04/06/gc-logging-user-sys-real-which-time-to-use/


Dimensionality reduction is about manipulating the data to view it under a much simpler perspective.
https://www.baeldung.com/native-memory-tracking-in-jvm


= 1.4.3 Reinforcement learning =
https://www.baeldung.com/jvm-garbage-collectors


Reinforcement learning trains on information gathered by observing how the environment reacts to actions.
https://dzone.com/articles/how-to-reduce-long-gc-pause


= 2. Tensorflow opertators =
== final-поля ==


tf.constant


tf.zeros
Значения для final-полей объекта задаются в конструкторе. Если предположить, что объект построен «правильно», то как только объект построен, значения, присвоенные final-полям в конструкторе будут видны всем другим потокам без синхронизации.


tf.ones
Пример:
<syntaxhighlight>
public FinalFieldExample() { // bad!
    x = 3;
    y = 4;
    // bad construction - allowing this to escape
    global.obj = this;
}
</syntaxhighlight>


tf.negative
в этом случае нет гарантии, что поток, прочитавший ссылку на данный объект из global.obj прочитает 3 из x.


tf.add(x, y)—Adds two tensors of the same type, x + y
Или не явный пример:
<syntaxhighlight>
public class EventListener2 {
  public EventListener2(EventSource eventSource) {
    eventSource.registerListener(
      new EventListener() {
        public void onEvent(Event e) {
          eventReceived(e);
        }
      });
  }
  public void eventReceived(Event e) {
  }
}
</syntaxhighlight>


tf.subtract(x, y)—Subtracts tensors of the same type, x – y
= Отладка =


tf.multiply(x, y)—Multiplies two tensors element-wise
== Удаленная отладка из Eclipse ==
Старт приложения (на примере spring boot) с портом для отладки 8888
<syntaxhighlight>
$ JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:8888,server=y,suspend=n -Dspring.profiles.active=dev,swagger,liquibase" ./app-0.0.1-SNAPSHOT.war
</syntaxhighlight>


tf.pow(x, y)—Takes the element-wise x to the power of y
В Eclipse выбрать Debug configurations... -> Remote Java Application -> New, исправить порт и нажать Debug


tf.exp(x)—Equivalent to pow(e, x), where e is Euler’s number (2.718 ...)
= Порядок модификаторов private static final =
Порядок формально не определен, но лучше придерживаться как написано в JLS '''private static final'''


tf.sqrt(x)—Equivalent to pow(x, 0.5)
= Generics =


tf.div(x, y)—Takes the element-wise division of x and y
== Unknown type ==
Никакой объект нельзя привести к неизвестному типу и соответственно добавить в массив с неизвестным типом:
<syntaxhighlight>
List<?> a = new ArrayList<Object>();
a.add(new Object());// compilation error. ? - unknown. Can't cast Object to unknown.
</syntaxhighlight>


tf.truediv(x, y)—Same as tf.div, except casts the arguments as a float
null может быть приведен к любому классу, соответственно его можно добавить в массив с неизвестным шаблонным типом:
 
<syntaxhighlight>
tf.floordiv(x, y)—Same as truediv, except rounds down the final answer into an integer
List<?> a = new ArrayList<Object>();
 
a.add(null);// null may be cast to any class.
tf.mod(x, y)—Takes the element-wise remainder from division
</syntaxhighlight>
 
-> 2.4. Executing operators with sessions
 
[[Категория:Работа]]
[[Категория:Linux]]
[[Категория:Docker]]
[[Категория:AI]]

Версия 07:00, 26 февраля 2020

Reference: Weak, Soft, Phantom, Strong

https://habr.com/ru/post/169883/

Memory

https://stackoverflow.com/questions/10209952/what-is-the-purpose-of-the-java-constant-pool

Java Memory Model (JSR 133) - лучшее

https://habrahabr.ru/company/golovachcourses/blog/221133/

Анализ GC логов

https://blog.gceasy.io/2016/04/06/gc-logging-user-sys-real-which-time-to-use/

https://www.baeldung.com/native-memory-tracking-in-jvm

https://www.baeldung.com/jvm-garbage-collectors

https://dzone.com/articles/how-to-reduce-long-gc-pause

final-поля

Значения для final-полей объекта задаются в конструкторе. Если предположить, что объект построен «правильно», то как только объект построен, значения, присвоенные final-полям в конструкторе будут видны всем другим потокам без синхронизации.

Пример:

public FinalFieldExample() { // bad!
    x = 3;
    y = 4;
    // bad construction - allowing this to escape
    global.obj = this;
}

в этом случае нет гарантии, что поток, прочитавший ссылку на данный объект из global.obj прочитает 3 из x.

Или не явный пример:

public class EventListener2 {
  public EventListener2(EventSource eventSource) {
 
    eventSource.registerListener(
      new EventListener() {
        public void onEvent(Event e) { 
          eventReceived(e);
        }
      });
  }
 
  public void eventReceived(Event e) {
  }
}

Отладка

Удаленная отладка из Eclipse

Старт приложения (на примере spring boot) с портом для отладки 8888

$ JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:8888,server=y,suspend=n -Dspring.profiles.active=dev,swagger,liquibase" ./app-0.0.1-SNAPSHOT.war

В Eclipse выбрать Debug configurations... -> Remote Java Application -> New, исправить порт и нажать Debug

Порядок модификаторов private static final

Порядок формально не определен, но лучше придерживаться как написано в JLS private static final

Generics

Unknown type

Никакой объект нельзя привести к неизвестному типу и соответственно добавить в массив с неизвестным типом:

List<?> a = new ArrayList<Object>();
a.add(new Object());// compilation error. ? - unknown. Can't cast Object to unknown.

null может быть приведен к любому классу, соответственно его можно добавить в массив с неизвестным шаблонным типом:

List<?> a = new ArrayList<Object>();
a.add(null);// null may be cast to any class.