File size: 1,946 Bytes
d36cc65
5928544
 
 
 
 
 
e30d640
d36cc65
e30d640
d69c975
5928544
d69c975
5928544
 
19d54fa
 
 
5c262cf
d69c975
 
7c589a0
5928544
d36cc65
f0cb89a
 
5928544
d36cc65
 
5928544
 
d36cc65
5928544
d69c975
 
5928544
 
 
7c589a0
f0cb89a
7c589a0
f0cb89a
5928544
 
d36cc65
5928544
 
d36cc65
 
 
 
5928544
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# A simple Linear Regression example for Celsius to Fahrenheit conversion with TensorFlow

import tensorflow as tf
import numpy as np
import streamlit as st
import matplotlib.pyplot as plt

# Streamlit UI
st.title('Celsius to Fahrenheit Conversion with TensorFlow')

# Define the model with a different weight initializer
model = tf.keras.Sequential([
    tf.keras.layers.Dense(units=1, input_shape=[1], kernel_initializer='he_normal')
])

# Set a suitable learning rate and number of epochs
learning_rate = 0.01
epochs = 500

# Compile the model with the Adam optimizer and loss function
optimizer = tf.keras.optimizers.Adam(learning_rate=learning_rate)
model.compile(optimizer=optimizer, loss='mse')

# Training data (Celsius to Fahrenheit)
celsius = np.array([-40, -10, 0, 8, 15, 22, 38], dtype=float)
fahrenheit = np.array([-40, 14, 32, 46.4, 59, 71.6, 100.4], dtype=float)

# User input for the Celsius value to predict Fahrenheit
input_celsius = st.number_input('Enter Celsius value:', value=0.0, format="%.1f")

# Button to train the model and make prediction
if st.button('Train Model and Predict Fahrenheit'):
    with st.spinner('Training...'):
        # Fit the model
        model.fit(celsius, fahrenheit, epochs=epochs, batch_size=4)
    st.success('Training completed!')

    # Make prediction
    predicted_fahrenheit = model.predict([input_celsius])[0][0]
    actual_fahrenheit = input_celsius * 9/5 + 32
    st.write(f'For input of {input_celsius}°C, the predicted Fahrenheit value is {predicted_fahrenheit:.1f}°F')
    st.write(f'Actual Fahrenheit value (by formula) is {actual_fahrenheit:.1f}°F')

    # Predictions for visualization
    predictions = model.predict(celsius)

    # Plotting
    plt.scatter(celsius, fahrenheit, label='Actual Conversion')
    plt.plot(celsius, predictions, color='red', label='Predicted Conversion')
    plt.xlabel('Celsius')
    plt.ylabel('Fahrenheit')
    plt.legend()
    st.pyplot(plt)