Skip to content
Snippets Groups Projects
Commit db8d1cd2 authored by Max Ramsay King's avatar Max Ramsay King
Browse files

Got react to work a bit

parent 140b6691
No related branches found
No related tags found
No related merge requests found
No preview for this file type
No preview for this file type
...@@ -252,9 +252,6 @@ def run_UCB1(policies, batch_size, learning_rate, ds, toy_size, max_epochs, earl ...@@ -252,9 +252,6 @@ def run_UCB1(policies, batch_size, learning_rate, ds, toy_size, max_epochs, earl
len_train = int(0.8*len(dataset)) len_train = int(0.8*len(dataset))
train_dataset, test_dataset = torch.utils.data.random_split(dataset, [len_train, len(dataset)-len_train]) train_dataset, test_dataset = torch.utils.data.random_split(dataset, [len_train, len(dataset)-len_train])
print('train_dataset', len(train_dataset), 'test_dataset', len(test_dataset))
# check sizes of images # check sizes of images
img_height = len(train_dataset[0][0][0]) img_height = len(train_dataset[0][0][0])
img_width = len(train_dataset[0][0][0][0]) img_width = len(train_dataset[0][0][0][0])
...@@ -335,7 +332,7 @@ def run_UCB1(policies, batch_size, learning_rate, ds, toy_size, max_epochs, earl ...@@ -335,7 +332,7 @@ def run_UCB1(policies, batch_size, learning_rate, ds, toy_size, max_epochs, earl
best_q_value = max(q_values) best_q_value = max(q_values)
best_q_values.append(best_q_value) best_q_values.append(best_q_value)
if (policy+1) % 1 == 0: if (policy+1) % 5 == 0:
print("Iteration: {},\tQ-Values: {}, Best Policy: {}".format(policy+1, list(np.around(np.array(q_values),2)), max(list(np.around(np.array(q_values),2))))) print("Iteration: {},\tQ-Values: {}, Best Policy: {}".format(policy+1, list(np.around(np.array(q_values),2)), max(list(np.around(np.array(q_values),2)))))
# update counts # update counts
...@@ -347,6 +344,7 @@ def run_UCB1(policies, batch_size, learning_rate, ds, toy_size, max_epochs, earl ...@@ -347,6 +344,7 @@ def run_UCB1(policies, batch_size, learning_rate, ds, toy_size, max_epochs, earl
for i in range(num_policies): for i in range(num_policies):
q_plus_cnt[i] = q_values[i] + np.sqrt(2*np.log(total_count)/cnts[i]) q_plus_cnt[i] = q_values[i] + np.sqrt(2*np.log(total_count)/cnts[i])
# yield q_values, best_q_values
return q_values, best_q_values return q_values, best_q_values
......
File deleted
...@@ -19,6 +19,5 @@ port = int(os.environ.get("PORT", 5000)) ...@@ -19,6 +19,5 @@ port = int(os.environ.get("PORT", 5000))
if __name__ == '__main__': if __name__ == '__main__':
app.run(debug=True) app.run(debug=True)
\ No newline at end of file
...@@ -39,7 +39,7 @@ def response(): ...@@ -39,7 +39,7 @@ def response():
early_stop_num = 10 # max number of worse validation scores before early stopping is triggered early_stop_num = 10 # max number of worse validation scores before early stopping is triggered
num_policies = 5 # fix number of policies num_policies = 5 # fix number of policies
num_sub_policies = 5 # fix number of sub-policies in a policy num_sub_policies = 5 # fix number of sub-policies in a policy
iterations = 10 # total iterations, should be more than the number of policies iterations = 5 # total iterations, should be more than the number of policies
IsLeNet = request.form.get("network_selection") # using LeNet or EasyNet or SimpleNet ->> default IsLeNet = request.form.get("network_selection") # using LeNet or EasyNet or SimpleNet ->> default
print(f'@@@@@ dataset is: {ds}, network is :{IsLeNet}') print(f'@@@@@ dataset is: {ds}, network is :{IsLeNet}')
...@@ -66,6 +66,11 @@ def response(): ...@@ -66,6 +66,11 @@ def response():
# generate random policies at start # generate random policies at start
policies = UCB1_JC.generate_policies(num_policies, num_sub_policies) policies = UCB1_JC.generate_policies(num_policies, num_sub_policies)
q_values, best_q_values = UCB1_JC.run_UCB1(policies, batch_size, learning_rate, ds, toy_size, max_epochs, early_stop_num, iterations, IsLeNet, ds_name) q_values, best_q_values = UCB1_JC.run_UCB1(policies, batch_size, learning_rate, ds, toy_size, max_epochs, early_stop_num, iterations, IsLeNet, ds_name)
print("q_values: ", q_values)
plt.figure()
plt.plot(q_values)
plt.savefig('/static/image/test.png')
# plt.plot(best_q_values) # plt.plot(best_q_values)
......
<!doctype html> <!doctype html>
<html> <html>
<style>
#myProgress {
width: 100%;
background-color: #ddd;
}
#myBar {
width: 1%;
height: 30px;
background-color: #04AA6D;
}
</style>
<head> <head>
{% block head %} {% block head %}
<title>{% block title %}{% endblock %} - Meta Reinforcement Learning for Data Augmentation</title> <title>{% block title %}{% endblock %} - Meta Reinforcement Learning for Data Augmentation</title>
......
...@@ -129,32 +129,105 @@ ...@@ -129,32 +129,105 @@
<label for="Invert">Invert</label><br><br><br> <label for="Invert">Invert</label><br><br><br>
<!-- <div id="exclude_augments" class="dropdown-check-list" tabindex="100">
<span class="anchor">Select data augmentation method(s) to exclude:</span>
<ul class="items">
<input type="checkbox" />Translate
<input type="checkbox" />Rotate
<input type="checkbox" />AutoContrast
<input type="checkbox" />Equalize
<br>
<input type="checkbox" />Solarize
<input type="checkbox" />Posterize
<input type="checkbox" />Contrast
<input type="checkbox" />Brightness
</ul>
</div> -->
<div id="exclude_augments">
<span class="anchor">Hyperparameter (Learning Rate):</span>
<ul class="items">
Automatic: <input type="checkbox" /> <div></div>
Manual: <input type="number" />
</ul>
</div>
<div id="like_button_container"></div>
<script src="https://unpkg.com/react@18/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js" crossorigin></script>
<!-- <script src="metarl/auto_augmentation/templates/like_button.js"></script> -->
<script type = 'module'>
// 'use strict';
import React from 'react';
import ReactDOM from 'react-dom';
</script>
<script>
const e = React.createElement;
class LikeButton extends React.Component {
constructor(props) {
super(props);
this.state = { liked: false };
}
render() {
if (this.state.liked) {
return 'You liked this.';
}
return e(
'button',
{ onClick: () => this.setState({ liked: true }) },
'Like'
);
}
}
const domContainer = document.querySelector('#like_button_container');
const root = ReactDOM.createRoot(domContainer);
root.render(e(LikeButton));
</script>
<!-- 3
<div id="mydiv"></div>
<script type="text/babel" type="javascript">
import ReactDOM from 'react-dom';
function Hello() {
return <h1>Hello World!</h1>;
}
ReactDOM.render(<Hello />, document.getElementById('mydiv'))
</script>
3 -->
<!-- ----------------- -->
<!-- <script
src="https://unpkg.com/react@16/umd/react.production.min.js"
crossorigin
type="javascript"
></script>
<script
src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"
crossorigin
></script>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<script type="text/babel" src="WelcomeBack.js"></script>
<script type="text/babel" src="CoolButton.js"></script>
<script type="text/babel">
ReactDOM.render(<WelcomeBack />, document.querySelector(".welcome-back"));
</script> -->
<input type="submit"> <input type="submit">
</form> </form>
{% endblock %} {% endblock %}
'use strict';
import React from 'react';
import ReactDOM from 'react-dom';
const e = React.createElement;
console.log('hello')
class LikeButton extends React.Component {
constructor(props) {
super(props);
this.state = { liked: false };
}
render() {
if (this.state.liked) {
return <p>'You liked this.'</p>;
}
return e(
'button',
{ onClick: () => this.setState({ liked: true }) },
'Like'
);
}
}
const domContainer = document.querySelector('#like_button_container');
const root = ReactDOM.createRoot(domContainer);
root.render(e(LikeButton));
\ No newline at end of file
...@@ -5,10 +5,39 @@ Training the model... ...@@ -5,10 +5,39 @@ Training the model...
<div> <div>
<img src="{{url_for('static', filename='image/training_plot.png')}}" class="img-thumbnail" /> <img src="{{url_for('static', filename='image/training_plot.png')}}" class="img-thumbnail" />
<div id="myProgress">
<div id="myBar"></div>
</div>
<br>
<button onclick="move()">Click Me</button>
<script>
var i = 0;
function move() {
if (i == 0) {
i = 1;
var elem = document.getElementById("myBar");
var width = 1;
var id = setInterval(frame, 10);
function frame() {
if (width >= 100) {
clearInterval(id);
i = 0;
} else {
width++;
elem.style.width = width + "%";
}
}
}
}
</script>
<form action="/show_result"> <form action="/show_result">
<input type="submit" value='Show Result'> <input type="submit" value='Show Result'>
</form> </form>
</div> </div>
{% endblock %} {% endblock %}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment