<jupyter_start><jupyter_text>downgraded tensorflow<jupyter_code>import tensorflow as tf
tf.__version__
!pip uninstall tensorflow
!pip install tensorflow==1.14
import tensorflow as tf<jupyter_output><empty_output><jupyter_text>3.1 텐서플로 기초 - 그래프 생성과 그래프 실행<jupyter_code>#그래프 노드를 정의하고 출력합니다.
node1 = tf.constant(3.0, dtype=tf.float32)
node2 = tf.constant(4.0)
print(node1, node2)

#세션을 열고 그래프를 실행합니다.
sess = tf.Session()
print(sess.run([node1, node2]))

#2개의 노드의 값을 더하는 연산을 수행하는 node3을 정의합니다.
node3 = tf.add(node1, node2)
print('node3:', node3)
print('sess.run(node3):', sess.run(node3))

sess.close()
tf.constant(
    value, #상수값이며 직접지정하거나 shape형태로 채울 값을 지정할 수 있습니다.
    dtype=None,
    shape=None,
    name='Const'
)
#상수값을 직접지정합니다.
tensor = tf.constant([1,2,3,4,5,6,7]) # [1,2,3,4,5,6,7]

#shape에 정의된 형태로 값을 채웁니다.
tensor = tf.constant(-1.0, shape=[2,3]) # [[-1. -1. -1.],
                                        #  [-1. -1. -1.]]<jupyter_output><empty_output><jupyter_text>3.2 place holder<jupyter_code># 플레이스홀더 노드와  add 노드를 정의합니다.
a = tf.placeholder(tf.float32)
b = tf.placeholder(tf.float32)
adder_node = a + b

#세션을 열고 그래프를 실행합니다.
sess = tf.Session()
print(sess.run(adder_node, feed_dict={a:3, b:4.5}))
print(sess.run(adder_node, feed_dict={a:[1, 3], b:[2, 4]}))

#노드를 추가해서 더 복잡해 그래프 형태를 만들어봅시다.
add_and_triple = adder_node*3
print(sess.run(add_and_triple, feed_dict={a:3, b:4.5}))

sess.close()<jupyter_output>7.5
[3. 7.]
22.5<jupyter_text>3.3 Linear Regression, Gradient Descent<jupyter_code>#선형 회귀 모델(WX+b)
W = tf.Variable(tf.random_normal(shape=[1]))
b = tf.Variable(tf.random_normal(shape=[1]))
x = tf.placeholder(tf.float32)
linear_model = W*x + b

#True Value를 입력받기 위한 플레이스홀더를 정의합니다.
y = tf.placeholder(tf.float32)

#손실 함수를 정의합니다.
loss = tf.reduce_mean(tf.square(linear_model - y))

#최적화를 위한 그라디언트 디센트 옵티마이저를 정의합니다.
optimizer = tf.train.GradientDescentOptimizer(0.01)
train_step = optimizer.minimize(loss)

# 트레이닝을 위한 입력값과 출력값을 준비합니다.
x_train = [1,2,3,4]
y_train = [2,4,6,8]

#세션을 실행하고 파라미터(W,b)를 normal distribution에서 추출한 임의의 값으로 초기화합니다.
sess = tf.Session()
sess.run(tf.global_variables_initializer())

#경사하강법을 1000번 수행합니다.
for i in range(1000):
    sess.run(train_step, feed_dict={x: x_train, y: y_train})

#테스트를 위한 입력값을 준비합니다.
x_test = [3.5, 5, 5.5, 6]

#테스트 데이터를 이용해 학습된 선형 회귀 모델이 데이터의 경향성(y=2x)을 잘 학습했는지 측정합니다.
#예상되는 참값 : [7, 10, 11, 12]
print(sess.run(linear_model, feed_dict={x: x_test}))

sess.close()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.15931372549019607, 'fraction_numerical': 0.046977124183006536, 'mean_word_length': 4.629885057471264, 'pattern_counts': {'":': 0, '<': 16, '<?xml version=': 0, '>': 16, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '4', 'dir': 'jupyter-structured-clean-dedup', 'id': '295678', 'license': 'MIT', 'n_tokens_mistral': 1407, 'n_tokens_neox': 1607, 'n_words': 235, 'path': 'TensorFlow01.ipynb', 'repo_name': 'ian24365/TensorFlow', 'size': '2448'}